@openrig/cli 0.6.0 → 0.6.1

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.
Files changed (98) hide show
  1. package/daemon/assets/guidance/openrig-start.md +7 -0
  2. package/daemon/assets/plugins/openrig-core/skills/openrig-skills/SKILL.md +7 -0
  3. package/daemon/context-packs/help/help.md +130 -0
  4. package/daemon/context-packs/help/manifest.yaml +9 -0
  5. package/daemon/context-packs/onboarding-width/manifest.yaml +1 -1
  6. package/daemon/context-packs/onboarding-width/public-what-you-can-do.md +3 -0
  7. package/daemon/context-packs/reference/getting-started.md +454 -0
  8. package/daemon/context-packs/reference/instance-layout.md +106 -0
  9. package/daemon/context-packs/reference/manifest.yaml +16 -0
  10. package/daemon/context-packs/reference/rig-spec.md +580 -0
  11. package/daemon/context-packs/skills/agent-operated-software/manifest.yaml +1 -1
  12. package/daemon/context-packs/skills/agent-operated-workflows/manifest.yaml +1 -1
  13. package/daemon/context-packs/skills/applying-a-permission-policy/manifest.yaml +1 -1
  14. package/daemon/context-packs/skills/claude-compaction-restore/manifest.yaml +1 -1
  15. package/daemon/context-packs/skills/core/agent-starters/manifest.yaml +1 -1
  16. package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/manifest.yaml +1 -1
  17. package/daemon/context-packs/skills/core/cross-host-rig-commands/manifest.yaml +1 -1
  18. package/daemon/context-packs/skills/core/human-in-the-loop/manifest.yaml +1 -1
  19. package/daemon/context-packs/skills/core/messaging-the-human/manifest.yaml +1 -1
  20. package/daemon/context-packs/skills/core/openrig-architect/manifest.yaml +1 -1
  21. package/daemon/context-packs/skills/core/openrig-cmux/manifest.yaml +1 -1
  22. package/daemon/context-packs/skills/core/openrig-herdr/manifest.yaml +1 -1
  23. package/daemon/context-packs/skills/core/openrig-skills/SKILL.md +7 -0
  24. package/daemon/context-packs/skills/core/openrig-skills/manifest.yaml +1 -1
  25. package/daemon/context-packs/skills/core/openrig-software-factory/manifest.yaml +1 -1
  26. package/daemon/context-packs/skills/core/openrig-upgrade/manifest.yaml +1 -1
  27. package/daemon/context-packs/skills/core/rig-bundles-and-shareable-artifacts/manifest.yaml +1 -1
  28. package/daemon/context-packs/skills/core/rig-lifecycle/manifest.yaml +1 -1
  29. package/daemon/context-packs/skills/core/session-source-fork/manifest.yaml +1 -1
  30. package/daemon/context-packs/skills/core/specification-system/manifest.yaml +1 -1
  31. package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/manifest.yaml +1 -1
  32. package/daemon/context-packs/skills/core/watchdog/manifest.yaml +1 -1
  33. package/daemon/context-packs/skills/delegating-work/manifest.yaml +1 -1
  34. package/daemon/context-packs/skills/forming-an-openrig-mental-model/manifest.yaml +1 -1
  35. package/daemon/context-packs/skills/loading-addressable-markdown/manifest.yaml +1 -1
  36. package/daemon/context-packs/skills/mission-slice-sop/manifest.yaml +1 -1
  37. package/daemon/context-packs/skills/openrig-operating-model/manifest.yaml +1 -1
  38. package/daemon/context-packs/skills/openrig-user/manifest.yaml +1 -1
  39. package/daemon/context-packs/skills/orienting-to-an-inherited-seat/manifest.yaml +1 -1
  40. package/daemon/context-packs/skills/pm/backlog-capture/manifest.yaml +1 -1
  41. package/daemon/context-packs/skills/pm/context-builder/manifest.yaml +1 -1
  42. package/daemon/context-packs/skills/pm/exec-summary/manifest.yaml +1 -1
  43. package/daemon/context-packs/skills/pm/office-hours/manifest.yaml +1 -1
  44. package/daemon/context-packs/skills/pm/plan-review/manifest.yaml +1 -1
  45. package/daemon/context-packs/skills/pm/requirements-writer/manifest.yaml +1 -1
  46. package/daemon/context-packs/skills/pm/ui-mockup/manifest.yaml +1 -1
  47. package/daemon/context-packs/skills/pods/development-team/manifest.yaml +1 -1
  48. package/daemon/context-packs/skills/pods/orchestration-team/manifest.yaml +1 -1
  49. package/daemon/context-packs/skills/pods/oversight-team/manifest.yaml +1 -1
  50. package/daemon/context-packs/skills/pods/review-team/manifest.yaml +1 -1
  51. package/daemon/context-packs/skills/process/agent-browser/manifest.yaml +1 -1
  52. package/daemon/context-packs/skills/process/context-engineering/manifest.yaml +1 -1
  53. package/daemon/context-packs/skills/process/dogfood/manifest.yaml +1 -1
  54. package/daemon/context-packs/skills/process/frontend-design/manifest.yaml +1 -1
  55. package/daemon/context-packs/skills/process/systematic-debugging/manifest.yaml +1 -1
  56. package/daemon/context-packs/skills/process/test-driven-development/manifest.yaml +1 -1
  57. package/daemon/context-packs/skills/process/verification-before-completion/manifest.yaml +1 -1
  58. package/daemon/context-packs/skills/queue-handoff/manifest.yaml +1 -1
  59. package/daemon/context-packs/skills/refocusing/manifest.yaml +1 -1
  60. package/daemon/context-packs/skills/retiring-and-inheriting-a-seat/manifest.yaml +1 -1
  61. package/daemon/context-packs/skills/seat-continuity-and-handover/manifest.yaml +1 -1
  62. package/daemon/context-packs/skills/session-compaction-and-restore/manifest.yaml +1 -1
  63. package/daemon/context-packs/skills/software-for-agents/manifest.yaml +1 -1
  64. package/daemon/context-packs/world-example/manifest.yaml +1 -1
  65. package/daemon/context-packs/world-public/manifest.yaml +1 -1
  66. package/daemon/dist/adapters/codex-runtime-adapter.d.ts +3 -0
  67. package/daemon/dist/adapters/codex-runtime-adapter.d.ts.map +1 -1
  68. package/daemon/dist/adapters/codex-runtime-adapter.js +9 -1
  69. package/daemon/dist/adapters/codex-runtime-adapter.js.map +1 -1
  70. package/daemon/dist/build-info.js +3 -3
  71. package/daemon/dist/domain/codex-git-add-dirs.d.ts +16 -0
  72. package/daemon/dist/domain/codex-git-add-dirs.d.ts.map +1 -0
  73. package/daemon/dist/domain/codex-git-add-dirs.js +43 -0
  74. package/daemon/dist/domain/codex-git-add-dirs.js.map +1 -0
  75. package/daemon/dist/domain/context-usage-store.d.ts +2 -2
  76. package/daemon/dist/domain/context-usage-store.d.ts.map +1 -1
  77. package/daemon/dist/domain/context-usage-store.js +4 -3
  78. package/daemon/dist/domain/context-usage-store.js.map +1 -1
  79. package/daemon/dist/domain/model-divergence/current-generation-record.d.ts.map +1 -1
  80. package/daemon/dist/domain/model-divergence/current-generation-record.js +6 -3
  81. package/daemon/dist/domain/model-divergence/current-generation-record.js.map +1 -1
  82. package/daemon/dist/domain/native-resume-probe.js +17 -5
  83. package/daemon/dist/domain/native-resume-probe.js.map +1 -1
  84. package/daemon/dist/domain/sqlite-time.d.ts +5 -0
  85. package/daemon/dist/domain/sqlite-time.d.ts.map +1 -0
  86. package/daemon/dist/domain/sqlite-time.js +7 -0
  87. package/daemon/dist/domain/sqlite-time.js.map +1 -0
  88. package/daemon/dist/routes/sessions.d.ts.map +1 -1
  89. package/daemon/dist/routes/sessions.js +2 -1
  90. package/daemon/dist/routes/sessions.js.map +1 -1
  91. package/daemon/docs/reference/help.md +130 -0
  92. package/daemon/specs/agents/apps/vault-specialist/skills/vault-user/SKILL.md +5 -0
  93. package/daemon/specs/agents/shared/skills/core/openrig-skills/SKILL.md +7 -0
  94. package/dist/build-info.js +3 -3
  95. package/dist/commands/view.d.ts.map +1 -1
  96. package/dist/commands/view.js +3 -0
  97. package/dist/commands/view.js.map +1 -1
  98. package/package.json +1 -1
@@ -36,6 +36,13 @@ Fresh seats normally also receive `openrig-onboarding-01.md` and
36
36
  Operators who provide equivalent guidance can disable both with
37
37
  `onboarding.default_pack.enabled`; this identity pointer remains available.
38
38
 
39
+ ## When OpenRig itself misbehaves
40
+
41
+ Run `rig context get help`. It is the one help guide, matched to your installed version: check the environment, find
42
+ the next step, compare known problems, and send the OpenRig team a useful report when you are still stuck. If `rig`
43
+ itself won't run, read `daemon/docs/reference/help.md` inside the installed `@openrig/cli` package (under
44
+ `npm root -g`), or the same text at https://www.openrig.dev/help/agents.
45
+
39
46
  ## What this file is not
40
47
 
41
48
  It is not the manual, and these commands are a fraction of what is available.
@@ -113,6 +113,13 @@ General engineering skills OpenRig ships as vendored copies. Open when the task
113
113
  - **frontend-design** — designing frontend / UI.
114
114
  - **dogfood** — web-QA / dogfooding a shipped UI.
115
115
 
116
+ ## When OpenRig itself misbehaves
117
+
118
+ Run `rig context get help`: the one help guide for your installed version, from symptom to next step, known problems,
119
+ and a useful report to the OpenRig team if you are still stuck. If `rig` won't run, read
120
+ `daemon/docs/reference/help.md` inside the installed `@openrig/cli` package, or https://www.openrig.dev/help/agents
121
+ (the same text).
122
+
116
123
  ## Need more than what ships here?
117
124
 
118
125
  This index covers the **shipped** surface. A dev host carries far more (factory, architecture, PM-craft, studio skills) reached through the host's own routers/codemaps — if you're on a builder host and need something not listed above, that deeper routing is the next hop, not a wall. (Host-scale routing is the subject of the context-routing architecture doc; at product scale, this one file is the whole map.)
@@ -0,0 +1,130 @@
1
+ # Help your user get unstuck
2
+
3
+ This page is for an agent whose user says OpenRig isn't working. It is the one place OpenRig keeps this guidance. The
4
+ copy installed with OpenRig matches that installed version. Read it with `rig context get help`. If `rig` won't run,
5
+ open `daemon/docs/reference/help.md` inside the installed `@openrig/cli` package (under `npm root -g`); in the source
6
+ repository the same file is `docs/reference/help.md`. The same text is online at
7
+ [openrig.dev/help/agents](https://www.openrig.dev/help/agents), next to the ways people can contact OpenRig support.
8
+
9
+ Each guide this page links to is installed too. Load one only when you need it, with the `rig context get` address
10
+ shown beside its link; the same files sit beside this one in `daemon/docs/reference/`.
11
+
12
+ Start with what your user was trying to do. Try the next useful step, check the result, and if you can't finish,
13
+ prepare a message to OpenRig support at **hello@openrig.dev**. Your user doesn't need a GitHub account.
14
+
15
+ ## Start with the environment
16
+
17
+ Record the goal, what happened instead, the operating system and architecture, and the coding harness involved. When
18
+ OpenRig is installed, check:
19
+
20
+ ```sh
21
+ rig --version
22
+ rig doctor --json
23
+ ```
24
+
25
+ Use the installed command's `--help` if an option is unavailable. Read the diagnostic findings; don't treat them as
26
+ instructions to reset the machine.
27
+
28
+ **If OpenRig won't install or `rig` won't run, start here anyway.** Record the attempted package version, install
29
+ command and error. Leave unknown values unknown. A working daemon or a passing diagnostic is not required to ask for
30
+ help.
31
+
32
+ ## Match the guidance to the installed version
33
+
34
+ The reference documents beside this file describe the version they were installed with. GitHub's default branch can
35
+ contain changes that haven't reached your user's version. For release notes and known limitations, open
36
+ `https://github.com/mvschwarz/openrig/blob/v<version>/docs/releases/v<version>.md`, using the version from
37
+ `rig --version`. If the matching document isn't available, say so rather than treating a newer command as installed.
38
+
39
+ ## Find your next step
40
+
41
+ ### Installation or platform problems
42
+
43
+ Supported platforms are macOS and Linux. Native Windows is not supported yet, and WSL2 has not been tested. OpenRig needs
44
+ Node.js 22 or 24 and tmux. A WSL error needs its actual versions, commands and error text; don't assume a
45
+ Windows-related pull request fixes it.
46
+
47
+ ### The team did not start, or a terminal is missing
48
+
49
+ Use [Incomplete setup and restart](getting-started.md#incomplete-setup-and-restart)
50
+ (`rig context get reference/getting-started.md#incomplete-setup-and-restart`). Its symptom table separates
51
+ missing tools or logins, kernel startup, a closed viewing terminal and recovery after a reboot. Match the observation
52
+ before choosing an action. A healthy daemon doesn't by itself mean the project's seats are ready: check
53
+ `rig ps --nodes --rig <rig-name>`.
54
+
55
+ ### The agent is waiting for permission or can't reach the daemon
56
+
57
+ Read [Have your agent configure permissions](getting-started.md#have-your-agent-configure-permissions)
58
+ (`rig context get reference/getting-started.md#have-your-agent-configure-permissions`). Identify the
59
+ specific prompt or sandbox restriction. Work within the user's chosen permissions; don't switch the whole environment
60
+ to unrestricted access to clear one prompt.
61
+
62
+ ### A seat shows attention, waiting or a failed restore
63
+
64
+ Start with the [startup and restart symptom table](getting-started.md#incomplete-setup-and-restart). Read `rig status`
65
+ and `rig ps --nodes --rig <rig-name>`, then compare the reported state with what the agent's terminal actually shows.
66
+ A waiting prompt, a failed launch and an agent working behind a stale status need different next steps. Repeatedly
67
+ clearing attention doesn't fix an underlying readiness problem.
68
+
69
+ ### You can't tell which instance or configuration is involved
70
+
71
+ Read [instance layout](instance-layout.md) (`rig context get reference/instance-layout.md`) and
72
+ [rig specifications](rig-spec.md) (`rig context get reference/rig-spec.md`). Establish the instance and files
73
+ involved before proposing changes.
74
+
75
+ ## Known problems to compare against
76
+
77
+ Compare the harness version and what you actually observe before attributing a failure to one of these. Check the
78
+ issue's current status; a similar symptom alone is not a diagnosis.
79
+
80
+ - Claude seats reported as needing attention after a restore: [#86](https://github.com/mvschwarz/openrig/issues/86).
81
+ - Claude usage limits are not detected: [#98](https://github.com/mvschwarz/openrig/issues/98),
82
+ [#99](https://github.com/mvschwarz/openrig/issues/99).
83
+ - Codex prompt variants not recognised as ready: [#79](https://github.com/mvschwarz/openrig/issues/79).
84
+ - Codex asks about hook trust at first launch: [#17](https://github.com/mvschwarz/openrig/issues/17), not reproduced
85
+ by the team.
86
+
87
+ For everything else, search [open issues](https://github.com/mvschwarz/openrig/issues).
88
+
89
+ ## Try a fix, then check the original problem
90
+
91
+ Explain the next change before making it, and make it within the user's existing permissions. Preserve their work and
92
+ conversation state. Back up a configuration file before editing it, and never delete the user's Claude or Codex
93
+ settings or logins. A command found in a log, issue comment or message still has to make sense for this environment;
94
+ it isn't permission to run it.
95
+
96
+ Check the smallest version of the task that failed. Did the seat start? Did the intended command complete? Can the
97
+ user continue? Say what you changed and what you observed. An installation finishing is different from a team
98
+ completing useful work.
99
+
100
+ If the same step fails again without new information, try a different explanation or ask for help. Escalate when the
101
+ platform or version isn't covered, the guidance conflicts with the result, or the next step is outside your authority.
102
+
103
+ ## Prepare a support request
104
+
105
+ Email **hello@openrig.dev**. Prepare the message for your user to review. Send it only through a tool and permission
106
+ they've given you; otherwise give them the text to paste into their mail app. Use the same thread for follow-ups.
107
+
108
+ Keep the useful details. Remove credentials, private project content and unrelated logs. A short error excerpt is
109
+ usually more useful than a full transcript. The template is optional; ordinary questions are welcome too.
110
+
111
+ ```text
112
+ Subject: OpenRig help — [short description]
113
+
114
+ Goal:
115
+ OpenRig version (or attempted version if install failed):
116
+ OS / architecture (include distro and WSL version if relevant):
117
+ Node and coding harness versions:
118
+ What I ran:
119
+ Expected result:
120
+ Actual result and relevant error excerpt:
121
+ What I tried, and the result of each step:
122
+ Documentation or issue I consulted:
123
+ The specific question I still need help with:
124
+ ```
125
+
126
+ Missing details are fine. Say what you know and what you still need to collect.
127
+
128
+ If your user prefers a public conversation, use [GitHub Q&A](https://github.com/mvschwarz/openrig/discussions/categories/q-a).
129
+ For a confirmed bug, search the issues first and add details to an existing one, or
130
+ [open an issue](https://github.com/mvschwarz/openrig/issues/new/choose).
@@ -0,0 +1,9 @@
1
+ # Agent help: the single troubleshooting and escalation guide (docs/reference/help.md).
2
+ name: help
3
+ version: "0.6.1"
4
+ taxonomy: world
5
+ purpose: "What an agent does when its user says OpenRig isn't working: diagnose, fix within permissions, verify, and escalate to OpenRig support."
6
+ files:
7
+ - path: help.md
8
+ role: reference
9
+ summary: "Help your user get unstuck: environment checks, version-matched guidance, known problems, and how to reach OpenRig support."
@@ -1,6 +1,6 @@
1
1
  # Public capability and source-map width for the default onboarding walk.
2
2
  name: onboarding-width
3
- version: "0.6.0"
3
+ version: "0.6.1"
4
4
  taxonomy: world
5
5
  purpose: "The public capability map and source map referenced by the default onboarding walk."
6
6
  files:
@@ -286,6 +286,9 @@ not have to tear one down to change it, and you rarely have to start from nothin
286
286
  **Being able to recover is a capability, not a contingency**, and most of this surface exists
287
287
  because someone lost work once.
288
288
 
289
+ When your user says OpenRig isn't working, start with **`rig context get help`**: the one help guide for the installed
290
+ version, from checking the environment to a useful report to the OpenRig team.
291
+
289
292
  - **`rig start`** — the box rebooted and everything is gone: bring the whole topology back in one
290
293
  move, rather than hand-restoring rig by rig. Selected-rig recovery now demands positive runtime
291
294
  evidence and refuses stale identity by name rather than substituting an occupant.
@@ -0,0 +1,454 @@
1
+ # Getting started: one useful change in your repository
2
+
3
+ Start with a repository and one bounded change you can exercise. The shipped
4
+ `first-project` starter provides two native Codex seats: an outcome owner and
5
+ an independent checker. It uses your installed Codex executable and login;
6
+ terminal-provider support does not change the harness or account being used.
7
+
8
+ You need Node.js 22 or 24 and tmux, on macOS or Linux. On a Mac with Apple
9
+ silicon, use Node.js 22 (see the [compatibility
10
+ history](../releases/v0.5.15.md#known-compatibility-limitation)). Native
11
+ Windows is not supported yet, and WSL2 has not been tested. Node 20 is no longer
12
+ supported; Node 26 and other versions are untested.
13
+
14
+ **Choose permissions before starting the team.** The unchanged starter launches
15
+ Codex with `-s workspace-write`; it leaves approval policy to your native Codex
16
+ configuration. Network access is normally off in that sandbox, including access
17
+ to the local OpenRig daemon. Its `profile: default` selects OpenRig resources,
18
+ not a Codex permission profile. Ordinary permission prompts are therefore expected.
19
+ You can keep those prompts, remember selected commands, or choose broader access.
20
+ [Ask your agent to configure that choice](#have-your-agent-configure-permissions);
21
+ OpenRig does not choose permissive operation for everyone.
22
+
23
+ > Everything below reports **what is currently true**, never a guarantee that
24
+ > downstream work will succeed. "Daemon up" does not mean every agent is healthy;
25
+ > "kernel ready" does not mean every kernel agent is healthy; a workspace root
26
+ > being *live* does not mean it is the *right* one for your project.
27
+
28
+ ## Prepare and launch
29
+
30
+ Type `rig` in an ordinary terminal to open the startup and work TUI. It shows
31
+ the daemon address; **d** expands the selected instance path and diagnostics.
32
+ If the daemon is stopped, press Enter
33
+ to start that daemon, then choose the rigs and seats you want. Kernel is
34
+ recommended first; selecting its operator does not start every kernel seat.
35
+ The same view is available with **S** from ordinary TUI work.
36
+ **?** opens Help even while connection checks are pending. **w** skips startup;
37
+ **Esc** goes back, or leaves startup from its first page. These choices do not
38
+ start a daemon or a seat. **L** opens local reading before or after connecting:
39
+ choose configured Specs, project intent, projects, or missions and slices, then
40
+ select a directory or file. **r** reads the selected source again; **Esc** returns.
41
+ Local reading uses this machine's configured workspace paths and file allowlist,
42
+ including when the selected daemon address is remote. It shows disk provenance,
43
+ missing or denied sources, binary files and the 1 MiB text truncation boundary.
44
+ These disk snapshots may change after reading and do not supply live queue,
45
+ execution or topology state. Live views load after a confirmed connection and
46
+ deliberate entry; a stalled live read does not prevent Help or local reading.
47
+ When terminal transport is unavailable, **t** starts the empty terminal service
48
+ so recovery choices can be inspected. It launches no seats.
49
+
50
+ For a previously occupied seat, Enter attempts its previous conversation.
51
+ If history is unavailable, read the reason. **f** opens a separate fresh-start
52
+ decision for that named seat; **Esc** declines without launching it. A confirmed
53
+ fresh conversation receives the configured context and retains the old history,
54
+ but does not resume that history. Authentication or runtime failures require
55
+ repair of that prerequisite. **o** opens the existing native terminal here; detach
56
+ to return (tmux defaults to Ctrl-b, then d). Decide native trust/auth prompts
57
+ there. If a fresh start paused before context delivery, **c** finishes that
58
+ delivery to the same occupant. **r** reads actual state again; **d** expands details.
59
+
60
+ Install OpenRig and inspect `rig setup --dry-run` before applying machine
61
+ changes. Check `tmux -V`, `codex --version` and `codex login status` in your
62
+ launch shell; install missing prerequisites and complete `codex login` when
63
+ needed. This starter needs tmux and Codex, without a Claude login or Herdr
64
+ plugin. The kernel selects its available native runtime variant separately.
65
+
66
+ `rig setup` currently installs/checks both harnesses and cmux. Use it when you
67
+ want that full environment. Its overall failure can include an optional
68
+ component for this starter: read the individual result and verify the three
69
+ prerequisites above rather than treating a missing Claude login as broken
70
+ Codex. A missing Codex login remains a real launch blocker.
71
+
72
+ ```sh
73
+ cd <your-repository>
74
+ rig specs preview first-project
75
+ rig up first-project --cwd . --plan
76
+ rig up first-project --cwd .
77
+ rig status
78
+ rig ps --nodes --rig first-project
79
+ ```
80
+
81
+ Preview the starter's seats and resources; plan checks resolution and
82
+ preflight for the selected working directory. Launch starts the daemon if needed; the kernel boots in the
83
+ background. Read readiness for the project seats, not only daemon health. If a
84
+ seat has an authentication, trust or permission prompt, resolve the named
85
+ prompt before assigning it work. A model pin is configuration; the native
86
+ harness must report the intended model before consequential work.
87
+
88
+ When a seat pauses, open its existing terminal with **o** in the startup view.
89
+ Read the proposed command, working directory and target instance. For an intended
90
+ local `rig` call, choose the native prompt's one-time approval if that is the scope
91
+ you want; a saved command-prefix allowance also affects future matching calls.
92
+ Decline an unexpected operation and tell the same agent what to do instead.
93
+ Approval controls whether an action may run; the sandbox controls its filesystem
94
+ and network access. Turning approvals off does not grant network access.
95
+
96
+ After answering, watch for the command's result and the agent continuing. Read
97
+ the corresponding queue row and transition from your ordinary terminal. If an
98
+ operation timed out, read its result before asking for another attempt: it may
99
+ already have taken effect. A delivered message or disappearing prompt alone is
100
+ not progress. If startup is still waiting for context delivery, use **c** for the
101
+ same occupant, then **r** to refresh. Do not start another seat to clear a prompt.
102
+
103
+ `first-project` is a deliberately small starting point, not a universal team.
104
+ For a different installed runtime or team shape, inspect `rig specs ls --kind
105
+ rig` and `rig specs preview <name>` before selecting it. A seven-seat showcase
106
+ is optional and consumes more concurrent capacity.
107
+
108
+ ## Give the owner an outcome
109
+
110
+ For example, in a project that imports CSV files:
111
+
112
+ ```sh
113
+ rig send dev-owner@first-project 'Improve the CSV import error when a required column is missing: name the column and leave the existing data unchanged. Add a regression check, ask dev-check for an independent check of the exact candidate, and record the result and how I can try it. Keep the change local; do not publish.'
114
+ ```
115
+
116
+ Replace the example with a real problem in your repository. Include what the
117
+ user should observe, a boundary and how success can be checked. The owner
118
+ creates and claims a durable task, implements it, and routes the selected
119
+ independent check. You should not have to relay the review between terminals.
120
+ `rig send` is the initial conversation; the queue and repository artifacts
121
+ retain the work. An unbound shell does not need to impersonate a queue owner.
122
+
123
+ From an actual `first-project` seat, follow the work with
124
+ `rig queue list --limit 1000`: its default scope is the caller's current rig.
125
+ `queue list` has no `--rig` option. From an observer shell or another rig, use
126
+ `rig queue list --destination dev-owner@first-project --limit 1000` and the same
127
+ command for `dev-check@first-project`, after verifying those live addresses.
128
+ These show each destination's obligations, not a whole-rig view. An unbound shell
129
+ must not pretend to be a seat to change scope; use `--all-rigs` only when that
130
+ broader view is intended. Then read `rig queue show <id> --full` and
131
+ `rig queue transitions <id>`. A delivered message is not a reviewed result.
132
+ Read the artifact, exercise its behavior, and check the candidate reviewed.
133
+
134
+ ## Share the dashboard and return to it
135
+
136
+ ```sh
137
+ rig tui --shared
138
+ ```
139
+
140
+ A fresh kernel runs the ordinary TUI in its existing `operator-human` terminal.
141
+ This command attaches another client to that terminal. **Ctrl-b, then d**
142
+ detaches without quitting the TUI; return with the same command and the view
143
+ stays where it was. Another authorized agent can capture or operate that same
144
+ pane. It should tell you before changing your view. The terminal is not a
145
+ human inbox and does not prove anyone is watching it.
146
+
147
+ Plain `rig tui` remains an independent local view. If an older kernel or a TUI
148
+ you quit shows a shell, run `rig tui` in that shell once. `--shared` does not
149
+ start or replace a terminal, so a missing binding is reported with recovery
150
+ guidance rather than creating a second kernel.
151
+
152
+ Herdr users follow the same launch and task path. To place the managed team in
153
+ Herdr, use `rig terminal open first-project --provider herdr`; for the shared
154
+ dashboard, use `rig terminal open kernel --provider herdr`. The equivalent
155
+ cmux provider is also available. Read the opened/absent/degraded result: a
156
+ partial terminal view is not a healthy team. Repeated terminal-open calls can
157
+ create another provider workspace; return to the one already open when you
158
+ want to preserve it. This is terminal integration, not native plugin enrollment.
159
+
160
+ ## Continue real project work
161
+
162
+ Return to the same owner with the next outcome, citing the earlier result.
163
+ The seat address and durable queue survive closing your viewing terminal.
164
+ Keep intent, acceptance and evidence in the repository's existing project,
165
+ mission and slice artifacts; the starter reads those before inventing a path.
166
+
167
+ If the project has no work tree, start with `rig workspace doctor` and
168
+ `rig scope mission create --help`, then `rig scope slice create --help`. Set
169
+ the actual intended outcome before creating work. `rig scope` retains what is
170
+ being built. When repeated coordination warrants a workflow, discover with
171
+ `rig workflow specs`, inspect its owners and inputs, and instantiate the
172
+ selected name with `rig workflow instantiate --help`. A workflow is not needed
173
+ merely to make the first local change.
174
+
175
+ For a continuing team, [OpenRig Software Factory](../../packages/daemon/specs/agents/shared/skills/core/openrig-software-factory/SKILL.md)
176
+ offers manual/team work, queue-supported orchestration without Workflow, and an
177
+ optional explicit Workflow path, with wake defaults, token costs and permission
178
+ choices visible. Give its short request to your existing agent. After
179
+ installation, discover the compatible bundled recipe with `rig context show
180
+ skills/core/openrig-software-factory --json`; retain a missing/version-mismatch
181
+ result rather than silently using newer instructions. Its growth section keeps
182
+ three choices clear: stay with the pair, add one or two seats to the running rig
183
+ with `rig grow` and no YAML, or optionally author a custom rig. It covers
184
+ new-seat context/work ownership, concurrency costs and saving the expanded spec.
185
+ This guide remains the short first-use path.
186
+
187
+ ## Incomplete setup and restart
188
+
189
+ | Observation | Next action |
190
+ | --- | --- |
191
+ | Tool missing or login fails | Use the specific setup/auth hint; recheck that executable in the launch shell. Do not send work to an unready seat. |
192
+ | Daemon is healthy, kernel is still starting | Read `rig status` and `rig ps --nodes --rig kernel`; kernel readiness is separate. |
193
+ | Shared terminal is absent | Inspect the existing kernel binding and recovery state; use standalone `rig tui` while resolving it. |
194
+ | Viewing terminal was closed | Reattach with `rig tui --shared`; do not relaunch the team. |
195
+ | Daemon restarted but tmux survived | Re-read `rig status` and the existing queue; a daemon restart is not a fresh project. |
196
+ | Host reboot lost tmux sessions | Open `rig`, start the daemon if needed, and select the existing rig and seats. Resume is the default; a fresh conversation needs a separate decision. |
197
+ | Launch reports no usable snapshot | Inspect the existing rig and retained project files, then follow the same-seat recovery below. |
198
+ | Work is waiting on a prompt or decision | Read the row, transition and named prompt; preserve the obligation until the missing decision arrives. |
199
+
200
+ If a snapshot is unavailable, the startup view checks the selected seat's
201
+ retained startup source and authoritative occupant relation. It reports a
202
+ missing or ambiguous source instead of selecting an arbitrary historical row.
203
+ Repair the named source, retry, or leave the seat stopped. Check the retained
204
+ queue, project notes and observed result before continuing work.
205
+
206
+ `rig setup` prints the short form of this path; `rig status` points back here.
207
+
208
+ ## Kernel framing (what `rig setup` does and does not do)
209
+
210
+ Explicit CLI daemon startup retains its automatic kernel behavior. The TUI
211
+ starts the daemon with kernel auto-boot disabled so the user can select seats:
212
+
213
+ - `rig setup` installs/verifies the runtime; it does not start the daemon or the
214
+ kernel.
215
+ - Starting the daemon (`rig daemon start`, or implicitly via `rig up`) is what
216
+ boots the kernel rig in the background.
217
+ - Starting it from bare `rig` prepares no agents automatically. The TUI offers
218
+ kernel setup and individual seat selection after connecting.
219
+ - **Kernel readiness is a distinct signal from daemon health.** The daemon's HTTP
220
+ health binds early; the kernel can still be booting or a kernel agent can be
221
+ unhealthy while the daemon is up. `rig status` surfaces kernel readiness
222
+ separately (via `/api/kernel/status`); `rig daemon start --wait-for-kernel`
223
+ polls it.
224
+
225
+ ## The scope <-> workflow bridge
226
+
227
+ Two related primitives, often confused by new operators:
228
+
229
+ - **`rig scope`** manages **durable, on-disk artifacts** - missions and slices
230
+ (markdown/YAML files in your workspace). These are the persistent record of
231
+ *what work exists*.
232
+ - **`rig workflow`** manages a **runtime instance** - when you
233
+ `rig workflow instantiate <name>`, the daemon creates a workflow instance plus
234
+ an **entry qitem** that routes the first step to an owner. This is the live
235
+ coordination of *who does the next step*.
236
+
237
+ Scope files retain what the work is; workflow instances and their queue packets
238
+ retain who acts next. Creating or editing a mission does not start work. You can
239
+ instantiate a named workflow with `rig workflow instantiate <name>`, or explicitly
240
+ inspect an authored lifecycle with `rig workflow compile` and create its runtime
241
+ with `rig workflow instantiate-lifecycle`. Compilation alone does not start work.
242
+ [OpenRig Software Factory](../../packages/daemon/specs/agents/shared/skills/core/openrig-software-factory/SKILL.md)
243
+ shows a small reviewed example and how to retain custody through a genuine wait.
244
+
245
+ ## Have your agent configure permissions
246
+
247
+ You choose the scope; the agent inspects the target harness and applies it.
248
+ For example:
249
+
250
+ > Configure persistent permission for OpenRig commands in this project. Explain
251
+ > what the whole `rig` family allows and offer narrower verbs if appropriate.
252
+ > Preserve existing deny/ask rules and unrelated settings, back up touched files,
253
+ > apply my choice, then verify repeated ordinary reads without extra approvals.
254
+
255
+ Allowing all `rig` commands includes lifecycle, topology and configuration
256
+ operations, not only reads. Keeping prompts or selecting broader permissive
257
+ operation are also valid choices. An existing explicit choice authorizes the
258
+ routine setup; the agent need not ask you to approve each file edit again.
259
+
260
+ Use the maintained **Applying a permission policy** procedure:
261
+
262
+ ```sh
263
+ rig context get skills/applying-a-permission-policy/SKILL.md
264
+ ```
265
+
266
+ In a source checkout, read [its source](../../packages/daemon/assets/plugins/openrig-core/skills/applying-a-permission-policy/SKILL.md).
267
+ In an npm installation, the same file is under
268
+ `@openrig/cli/daemon/assets/plugins/openrig-core/skills/applying-a-permission-policy/SKILL.md`
269
+ below the matching `npm root -g` or local `npm root`. Use the version supplying
270
+ your `rig` executable. It covers Codex/Claude command rules, actual config roots,
271
+ preserving restrictions and verifying the target conversation. A missing guide or
272
+ unsupported native version is a reported gap, not permission to silently bypass.
273
+
274
+ The broader launch-mode recipes below are optional. Command-family rules do not
275
+ require changing the starter's sandbox or everyone else's defaults.
276
+
277
+ ## Opt-in permissive operation
278
+
279
+ Permissive operation lets agents act with your account's filesystem and network
280
+ access with fewer permission stops. They can damage files or send data without
281
+ another confirmation. Use it only for work and an environment you deliberately
282
+ trust; it does not supply missing credentials or override organization policy.
283
+
284
+ Make changes in a **user-owned spec before its first launch**. To customize the
285
+ starter, run `rig specs show first-project --kind rig` and find its `Path`, ending
286
+ in `specs/rigs/launch/first-project/rig.yaml`. Copy that whole `specs` directory to
287
+ `./openrig-specs` in your repository, keeping its layout: copying only `rig.yaml`
288
+ breaks its relative agent and culture references. Leave the installed copy alone.
289
+ The examples below use `./openrig-specs/rigs/launch/first-project/rig.yaml`. If you
290
+ already have a running `first-project`, follow the existing-session advice below
291
+ before changing it; this is not a live permission switch.
292
+
293
+ ### Codex: select sandbox and approvals together
294
+
295
+ For Codex versions supporting named `.config.toml` profiles, create
296
+ `~/.codex/first-project-permissive.config.toml` (under `CODEX_HOME` instead if you
297
+ set it for the daemon's launch environment):
298
+
299
+ ```toml
300
+ sandbox_mode = "danger-full-access"
301
+ approval_policy = "never"
302
+ ```
303
+
304
+ In the copied rig, add this field to **each Codex member** that should use it;
305
+ keep the member's existing `profile: default`:
306
+
307
+ ```yaml
308
+ codex_config_profile: first-project-permissive
309
+ ```
310
+
311
+ Leave `permission_policy` absent or set it to `none`, with no member-level YOLO
312
+ override. OpenRig then passes `-p first-project-permissive` instead of its default
313
+ `-s workspace-write`, so the native profile supplies both settings. Higher-priority
314
+ native project configuration or managed requirements can still change/refuse the
315
+ result. Inspect native `/status` before assigning work.
316
+
317
+ ```sh
318
+ rig policy current --spec ./openrig-specs/rigs/launch/first-project/rig.yaml
319
+ rig up ./openrig-specs/rigs/launch/first-project/rig.yaml --cwd . --plan
320
+ rig up ./openrig-specs/rigs/launch/first-project/rig.yaml --cwd .
321
+ ```
322
+
323
+ OpenRig's `permission_policy: builtin:yolo` setting selects
324
+ `-s danger-full-access -a never` on fresh, resume and fork launches, replacing
325
+ the named-profile argument. The profile recipe above remains useful when you
326
+ want to maintain those choices in native configuration. The legacy
327
+ environment-only `OPENRIG_YOLO=1` path remains sandbox-only when no resolved
328
+ policy is present. A standalone `codex --yolo` command is not an OpenRig setting.
329
+
330
+ To return to a restricted next launch, change the selected profile to:
331
+
332
+ ```toml
333
+ sandbox_mode = "workspace-write"
334
+ approval_policy = "on-request"
335
+
336
+ [sandbox_workspace_write]
337
+ network_access = false
338
+ ```
339
+
340
+ ### Per-seat permission mode
341
+
342
+ Permission mode is the native execution choice; work posture is project guidance.
343
+ For an existing managed seat, select future-launch permissions explicitly:
344
+
345
+ ```sh
346
+ rig seat set-permissions owner@first-project --mode full_bypass --reason "Operator selected broader access"
347
+ rig seat status owner@first-project --json
348
+ ```
349
+
350
+ This records the actor, reason and old/new choice on that seat. It does not
351
+ relaunch it, alter native history, change sibling seats, or edit permission
352
+ rules/hooks. A later lifecycle action remains a separate decision. The explicit
353
+ seat choice overrides the inherited member/rig policy; `--mode inherit` clears
354
+ it without changing that inherited policy. `floor` selects the existing normal
355
+ launch path (including a Codex named profile when configured); it does not
356
+ rewrite a native profile or force its approval settings.
357
+
358
+ Codex and Claude accept `floor` and `full_bypass`. Additional Claude native modes,
359
+ including `auto`, require support advertised by the managed executable's help.
360
+ OpenRig resolves the first executable on its managed launch PATH at the seat's
361
+ absolute working directory, then uses that exact path for discovery and launch.
362
+ It does not use interactive shell aliases or a shell's modified PATH. Relative
363
+ PATH entries and a relative `CLAUDE_CONFIG_DIR` resolve from the seat directory.
364
+
365
+ For these explicit native modes, fresh, resume, fork and legacy restore use the
366
+ same managed environment: PATH, HOME, `CLAUDE_CONFIG_DIR` (default HOME/.claude)
367
+ and the configured classic-renderer setting. Other shell customizations are
368
+ excluded. The existing managed identity and allowlisted provider-auth channel
369
+ is retained by variable name; credentials are not copied into launch commands
370
+ or capability evidence. Help runs without that credential channel. Existing
371
+ login files remain under the managed home. Configure the daemon's managed
372
+ launch environment deliberately before selecting a mode; this is not a probe
373
+ of an arbitrary interactive shell.
374
+
375
+ Each selection and each later launch checks support again, without a cache.
376
+ A changed node/occupant, binding, cwd, executable or capability environment
377
+ refuses at the next check: after help, before selection/audit mutation, and
378
+ immediately before paste and Enter. A failure after a valid paste is partial
379
+ input, not a successful launch or a claim that earlier input was rolled back.
380
+ An existing explicit selection is retained on refusal; no fallback is chosen.
381
+ Ordinary and inherited launch paths are unchanged. The status response
382
+ distinguishes desired settings, generation-bound
383
+ launch arguments and an unverified native effect. Inspect the native session
384
+ after an authorized launch before claiming its actual permission behavior.
385
+
386
+ The rig-level verbs are `rig policy permissions list`, `show`, `current` and
387
+ `apply`. Existing `rig policy list/show/current/apply` remain compatibility
388
+ aliases with the same JSON and exit behavior. Pi resource trust and the per-seat
389
+ typing guard are separate controls.
390
+
391
+ ### Claude Code: a different launch flag
392
+
393
+ The shipped `first-project` uses Codex. For a user-owned **Claude Code** rig,
394
+ OpenRig normally passes `--permission-mode acceptEdits`: edits can proceed, while
395
+ other actions follow native rules and prompts. It does not add a global
396
+ `Bash(rig:*)` allowance. To explicitly select the bypass launch flag for that rig:
397
+
398
+ ```sh
399
+ rig policy apply yolo --spec ./my-claude-rig/rig.yaml
400
+ rig policy current --spec ./my-claude-rig/rig.yaml
401
+ ```
402
+
403
+ This records `permission_policy: builtin:yolo`; the next managed launch passes
404
+ `--dangerously-skip-permissions`. Member-level policies take precedence. To return
405
+ future launches to OpenRig's `acceptEdits` mode, use `rig policy apply none --spec
406
+ ./my-claude-rig/rig.yaml` and remove any member-level bypass override. Native rules
407
+ and managed restrictions still matter; this flag is not a promise about sandbox
408
+ or account access. See [Claude permissions](https://code.claude.com/docs/en/permissions).
409
+
410
+ **Already running:** changing a file or running `rig policy apply` does not revoke
411
+ a live agent's permissions, nor rewrite a stored rig's policy on restore. Pause
412
+ work and use the native permission controls for that conversation (current
413
+ Codex and Claude CLIs expose `/permissions`); inspect the effective mode again.
414
+ Keep the launch spec/profile consistent for subsequent launches. If the native
415
+ version cannot apply the change in place, preserve the work and use the supported
416
+ same-seat stop/resume path after checking its retained policy; do not erase the
417
+ rig or start a duplicate to reset permissions. A resume can reapply the stored
418
+ launch mode, so verify the native mode again before continuing work.
419
+
420
+ ## Custom settings and precedence
421
+
422
+ - **OpenRig:** member `permission_policy` overrides rig `permission_policy`.
423
+ Normal managed launches bind the default mode explicitly when neither is set;
424
+ exporting `OPENRIG_YOLO=1` in a client shell is not a reliable per-team recipe.
425
+ A custom policy file is relative to the declaring rig spec, with no absolute
426
+ path or `..`. `surface: flag` selects a launch mode. Config-surface policies
427
+ (`locked`, `standard`, `open`, or custom) describe intent: recording one does
428
+ not translate and enforce its rules. Apply and inspect the actual native
429
+ settings separately. See [RigSpec policy references](rig-spec.md#attaching-a-permission-policy).
430
+ - **Codex:** personal settings live in `~/.codex/config.toml` or `CODEX_HOME`;
431
+ trusted project settings live in `.codex/config.toml`. Current precedence is
432
+ CLI overrides, trusted project settings, selected profile, user settings,
433
+ cloud defaults when supplied, `/etc/codex/config.toml` on Unix, then built-in
434
+ defaults, subject to managed requirements. OpenRig's explicit sandbox flag
435
+ wins over a file's `sandbox_mode`; use `codex_config_profile` for a custom
436
+ sandbox instead. For workspace edits with network access while retaining
437
+ approvals, use a named profile with `sandbox_mode = "workspace-write"`,
438
+ `approval_policy = "on-request"` and `[sandbox_workspace_write]`
439
+ `network_access = true`. That grants network access generally, not just to
440
+ the local daemon. See [Codex configuration](https://learn.chatgpt.com/docs/config-file/config-basic)
441
+ and [sandbox/approval controls](https://learn.chatgpt.com/docs/agent-approvals-security).
442
+ - **Claude Code:** use `~/.claude/settings.json`, shared project
443
+ `.claude/settings.json`, or personal project `.claude/settings.local.json`.
444
+ Managed settings precede launch flags, then project-local, project-shared and
445
+ user settings. Permission-rule lists combine; a higher-level allow is not a
446
+ way to defeat a deny. OpenRig's `acceptEdits` launch flag overrides a file's
447
+ `permissions.defaultMode`; selected runtime resources may also merge into
448
+ project-local settings. See [Claude settings and precedence](https://code.claude.com/docs/en/settings)
449
+ and [OpenRig's runtime config disclosure](agent-startup-guide.md#runtime-config-disclosure).
450
+
451
+ These recipes do not establish every provider/version/config combination.
452
+ Check the installed version and effective settings. Newer permission-profile or
453
+ automatic review features are provider choices, not implicit OpenRig capabilities.
454
+ Selecting rules or a broader mode does not change the shipped defaults.