open-research-protocol 0.4.19 → 0.4.21

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.
@@ -2,6 +2,12 @@
2
2
 
3
3
  Use this loop when an AI agent is the primary operator of an ORP-enabled repo.
4
4
 
5
+ For the longer-horizon model where ORP scans a project's specs, roadmaps, and
6
+ codebase, compiles what is autonomous, and runs until a true human gate, also
7
+ read:
8
+
9
+ - `docs/ORP_AUTONOMY_PROJECT_COMPILATION_MODEL.md`
10
+
5
11
  ## 1. Discover
6
12
 
7
13
  - Read `llms.txt`.
@@ -12,6 +18,7 @@ Use this loop when an AI agent is the primary operator of an ORP-enabled repo.
12
18
  - Treat it as an optional lens for deeper, wider, top-down, or rotated perspective shifts.
13
19
  - If packs matter, run `orp pack list --json`.
14
20
  - Read `PROTOCOL.md` before making claims.
21
+ - If the repo uses parent/child agent guidance, run `orp agents audit --json` so you know `AGENTS.md` and `CLAUDE.md` are aligned before taking a long-running path.
15
22
  - If the task is external OSS contribution workflow or PR governance, read
16
23
  `docs/EXTERNAL_CONTRIBUTION_GOVERNANCE.md` before selecting work.
17
24
  - For the more detailed external-contribution operator rhythm, then read
@@ -20,9 +27,41 @@ Use this loop when an AI agent is the primary operator of an ORP-enabled repo.
20
27
  ## 2. Select Work
21
28
 
22
29
  - Identify the target profile and canonical artifact paths.
30
+ - If the task depends on the current highest-leverage action slice, refresh ORP's agenda first:
31
+ - `orp agenda refresh --json`
32
+ - `orp agenda refresh-status --json`
33
+ - `orp agenda enable-refreshes --json`
34
+ - `orp agenda enable-refreshes --morning 08:30 --afternoon 13:00 --evening 18:30 --json`
35
+ - `orp agenda disable-refreshes --json`
36
+ - `orp agenda actions --json`
37
+ - `orp agenda suggestions --json`
38
+ - `orp agenda focus --json`
39
+ - `orp agenda set-north-star "Advance the ocular controller and ORP ecosystems" --json`
40
+ - If the task depends on umbrella guidance or project-specific agent instructions, inspect or refresh the managed files first:
41
+ - `orp agents root show --json`
42
+ - `orp agents sync --json`
43
+ - `orp agents audit --json`
44
+ - If the task depends on an external service, deployment target, dataset platform, or publishing destination, inspect the saved connections first:
45
+ - `orp connections providers --json`
46
+ - `orp connections list --json`
47
+ - `orp connections show <connection> --json`
48
+ - `orp connections add <connection-id> --provider github --auth-secret-alias <alias> --secret-binding releases=<alias> --json`
49
+ - `orp connections add <connection-id> --provider custom --label "Custom Service" --url https://example.org --secret-binding primary=<alias> --json`
50
+ - `orp connections update <connection> --status paused --json`
51
+ - `orp connections sync --json`
52
+ - `orp connections pull --json`
53
+ - If the task is shaped by contests, programs, grants, or similar openings, inspect the saved board first:
54
+ - `orp opportunities list --json`
55
+ - `orp opportunities show <board> --json`
56
+ - `orp opportunities focus <board> --limit 5 --json`
57
+ - `orp opportunities add <board> --title "<title>" --kind contest --section <section> --priority high --json`
58
+ - `orp opportunities update <board> <item-id> --status submitted --json`
59
+ - `orp opportunities sync <board> --json`
60
+ - `orp opportunities pull <board> --json`
23
61
  - If the task needs an API key or token that is not already available, save it first:
24
62
  - human interactive path:
25
63
  - `orp secrets add --alias <alias> --label "<label>" --provider <provider>`
64
+ - `orp secrets add --alias <alias> --label "<label>" --provider <provider> --kind password --username <login>`
26
65
  - agent/script path:
27
66
  - `printf '%s' '<secret>' | orp secrets add --alias <alias> --label "<label>" --provider <provider> --value-stdin`
28
67
  - convenience path:
@@ -0,0 +1,252 @@
1
+ # ORP Autonomy Project Compilation Model
2
+
3
+ ## Purpose
4
+
5
+ Define the product model for turning a real repo with specs, roadmap docs, and
6
+ code into an autonomous ORP lane that runs until a true human gate.
7
+
8
+ This is the missing bridge between:
9
+
10
+ - "the roadmap exists"
11
+ - and "the agent can actually keep going unattended"
12
+
13
+ ## Core Claim
14
+
15
+ ORP should not require users to manually hand-build a runtime registry before
16
+ autonomy becomes useful.
17
+
18
+ Instead, ORP should:
19
+
20
+ 1. scan the project's authority surfaces
21
+ 2. infer what work is already executable
22
+ 3. identify what still requires human judgment or real-world action
23
+ 4. scaffold the missing runtime contracts
24
+ 5. run the admissible work until a true stop gate
25
+
26
+ ## The Problem This Solves
27
+
28
+ In real projects, a capable agent can often continue from:
29
+
30
+ - `AGENTS.md`
31
+ - roadmap/spec documents
32
+ - active notes
33
+ - codebase scripts and commands
34
+
35
+ But an unattended runtime cannot rely on implicit operator judgment.
36
+
37
+ The unattended system needs explicit answers to:
38
+
39
+ - what is the source of truth?
40
+ - what is a roadmap vs a pause policy?
41
+ - what step is next?
42
+ - what command actually runs that step?
43
+ - what output proves the step is done?
44
+ - what requires a human?
45
+
46
+ This model gives ORP a way to infer and scaffold those answers instead of
47
+ making the user encode them all by hand first.
48
+
49
+ ## Core Concepts
50
+
51
+ ### 1. Authority Surfaces
52
+
53
+ These are the repo objects that define what the project is allowed to treat as
54
+ planning authority.
55
+
56
+ Typical sources:
57
+
58
+ - `AGENTS.md`
59
+ - `llms.txt`
60
+ - roadmap/spec docs
61
+ - current frontier or "next step" notes
62
+ - state files
63
+ - package manifests
64
+ - scripts and make targets
65
+ - protocol docs
66
+
67
+ ### 2. Coverage Map
68
+
69
+ ORP should build a row-by-row map of project nodes:
70
+
71
+ - already executable
72
+ - partially executable
73
+ - strategic only
74
+ - human gated
75
+
76
+ This is the bridge from roadmap language to runtime truth.
77
+
78
+ ### 3. Runtime Unit
79
+
80
+ A roadmap node becomes runnable only when ORP can associate it with:
81
+
82
+ 1. one recognized next-step surface
83
+ 2. one concrete command or builder
84
+ 3. expected outputs
85
+ 4. verification/closeout
86
+ 5. one stop-gate interpretation
87
+
88
+ ### 4. True Human Gate
89
+
90
+ A true gate is not "the agent feels uncertain."
91
+
92
+ A true gate is a boundary like:
93
+
94
+ - spend or purchase
95
+ - outreach or counterparty contact
96
+ - provider/vendor selection with real consequences
97
+ - legal/oversight/compliance judgment
98
+ - external release
99
+ - claim-bearing promotion
100
+ - destructive irreversible action
101
+ - real-world biological/physical execution
102
+
103
+ ## Proposed ORP Flow
104
+
105
+ ### `orp autonomy scan`
106
+
107
+ Purpose:
108
+
109
+ - inspect the repo and identify the candidate authority surfaces
110
+
111
+ Outputs:
112
+
113
+ - authority stack
114
+ - route split if multiple roadmap families exist
115
+ - likely live frontier docs
116
+ - possible command/build surfaces
117
+
118
+ ### `orp autonomy coverage`
119
+
120
+ Purpose:
121
+
122
+ - build the roadmap-to-runtime coverage matrix
123
+
124
+ Outputs:
125
+
126
+ - executable nodes
127
+ - partial nodes
128
+ - human-gated nodes
129
+ - missing compilation requirements
130
+
131
+ ### `orp autonomy compile`
132
+
133
+ Purpose:
134
+
135
+ - scaffold runtime units for uncovered but admissible roadmap work
136
+
137
+ Outputs:
138
+
139
+ - task contracts
140
+ - mission contracts
141
+ - gate dossiers
142
+ - checkpoint/closeout contracts
143
+
144
+ ### `orp autonomy run`
145
+
146
+ Purpose:
147
+
148
+ - execute the compiled lane until a true gate, no-runnable boundary, or failure
149
+
150
+ Behavior:
151
+
152
+ - derive next admissible task
153
+ - execute
154
+ - checkpoint
155
+ - refresh workspace state
156
+ - repeat
157
+ - stop only at true gates
158
+
159
+ ### `orp autonomy gates`
160
+
161
+ Purpose:
162
+
163
+ - show active gates and what human decisions they require
164
+
165
+ Outputs:
166
+
167
+ - gate id
168
+ - exact trigger
169
+ - current packet/dossier
170
+ - safe parallel work
171
+
172
+ ### `orp autonomy resume`
173
+
174
+ Purpose:
175
+
176
+ - reopen a paused lane after a human gate is explicitly approved
177
+
178
+ Outputs:
179
+
180
+ - resumed runtime context
181
+ - reopened next step
182
+ - continuation receipt
183
+
184
+ ## Compilation Heuristics
185
+
186
+ ORP should infer aggressively but conservatively.
187
+
188
+ Good candidates for automatic compilation:
189
+
190
+ - builder scripts that emit canonical artifacts
191
+ - docs that use exact next-step language
192
+ - repeated checkpoint patterns
193
+ - task-specific notes with strong input/output structure
194
+
195
+ Bad candidates for automatic compilation:
196
+
197
+ - vague strategic narratives with no runnable command
198
+ - tasks that imply counterparty contact
199
+ - tasks that imply money
200
+ - steps that promote support-only outputs into authority
201
+
202
+ ## What ORP Should Emit
203
+
204
+ For a real project, the compiled autonomy packet should include:
205
+
206
+ - authority surfaces
207
+ - roadmap hierarchy
208
+ - coverage matrix
209
+ - task registry
210
+ - mission queue
211
+ - stop-gate policy
212
+ - human dossier templates
213
+ - run-until-gate launch surface
214
+ - resume-after-gate surface
215
+
216
+ ## Boundary Rule
217
+
218
+ ORP remains process/governance infrastructure.
219
+
220
+ It can compile, route, checkpoint, and pause.
221
+
222
+ It must not treat its own packets as scientific or operational evidence.
223
+ Evidence still lives in the repo's canonical artifacts.
224
+
225
+ ## Example Pattern
226
+
227
+ The controller benchmark experiment surfaced the exact shape:
228
+
229
+ 1. exploit public/support-only work fully
230
+ 2. compile the remaining pre-outreach tasks
231
+ 3. keep drafts unsent
232
+ 4. stop only when the next step would actually contact a counterparty or spend
233
+ 5. emit a gate dossier
234
+ 6. resume only after the human opens that gate
235
+
236
+ That pattern is generalizable well beyond one biotech project.
237
+
238
+ ## Success Criteria
239
+
240
+ This model is working when ORP can take a repo with real specs and roadmaps and
241
+ produce:
242
+
243
+ - one honest "what can be done autonomously?" map
244
+ - one honest "where do humans still matter?" map
245
+ - one runnable autonomous lane
246
+ - one clean pause packet at the first real human boundary
247
+
248
+ ## One-Sentence Version
249
+
250
+ ORP should compile a project's real planning surfaces into an executable
251
+ autonomous lane that keeps going until the work reaches a true human gate,
252
+ instead of requiring users to hand-author the whole runtime first.
@@ -7,6 +7,10 @@ The design goal is simple:
7
7
  - local-first by default
8
8
  - hosted sync is optional
9
9
  - the workspace ledger remembers where ongoing work lives
10
+ - `AGENTS.md` and `CLAUDE.md` keep umbrella and child guidance aligned
11
+ - the agenda keeps two ranked lists for what matters now and what to expand next
12
+ - the connections registry remembers which services, accounts, and secret aliases power your tooling
13
+ - opportunity boards remember contests, programs, grants, and similar openings
10
14
  - repo governance keeps work intentional
11
15
  - the agent uses ORP as its operating lens, not as an afterthought
12
16
 
@@ -17,6 +21,7 @@ Do not let ORP process scaffolding masquerade as evidence or repository truth.
17
21
  ORP is there to:
18
22
 
19
23
  - keep the workspace ledger honest
24
+ - keep connection identities and auth references organized
20
25
  - keep repo governance explicit
21
26
  - keep secrets and continuity usable
22
27
  - help the agent stay aligned
@@ -35,9 +40,19 @@ If you already know you want the standard local-first ORP loop in a repo, the fa
35
40
 
36
41
  ```bash
37
42
  orp home
43
+ orp agents root set /absolute/path/to/projects
38
44
  orp init
45
+ orp agents audit
39
46
  orp workspace create main-cody-1
40
47
  orp workspace tabs main
48
+ orp agenda refresh --json
49
+ orp agenda focus
50
+ orp connections providers
51
+ orp connections add github-main --provider github --label "GitHub Main" --auth-secret-alias github-main
52
+ orp connections add huggingface-main --provider huggingface --label "Hugging Face" --secret-binding primary=hf-main --secret-binding publish=hf-publish
53
+ orp connections add my-science-portal --provider custom --label "My Science Portal" --url https://example.org --secret-binding primary=my-science-token
54
+ orp opportunities create main-opportunities --label "Main Opportunities"
55
+ orp opportunities list
41
56
  orp secrets ensure --alias openai-primary --provider openai --current-project --json
42
57
  orp status --json
43
58
  orp checkpoint create -m "capture loop state" --json
@@ -46,9 +61,14 @@ orp checkpoint create -m "capture loop state" --json
46
61
  That gets you:
47
62
 
48
63
  - the discovery screen
64
+ - an optional umbrella projects root for parent/child agent guidance
49
65
  - repo governance initialized
66
+ - repo-level AGENTS.md and CLAUDE.md scaffolded or refreshed
50
67
  - a local workspace ledger
51
68
  - the main recovery surface
69
+ - a local operating agenda
70
+ - a saved connection record for a real integration
71
+ - a separate opportunities board for contests/programs/grants
52
72
  - secrets setup
53
73
  - a clean repo-governance read
54
74
  - a first intentional checkpoint
@@ -97,6 +117,9 @@ More concretely, `orp init` does these jobs:
97
117
  - `orp/HANDOFF.md`
98
118
  - `orp/checkpoints/CHECKPOINT_LOG.md`
99
119
  - `analysis/orp.kernel.task.yml`
120
+ - scaffolds or updates:
121
+ - `AGENTS.md`
122
+ - `CLAUDE.md`
100
123
  - writes governance metadata like:
101
124
  - `orp/governance.json`
102
125
  - `orp/agent-policy.json`
@@ -104,6 +127,31 @@ More concretely, `orp init` does these jobs:
104
127
 
105
128
  So `orp init` is not "start doing the work." It is "make this repo legible and governable for humans and agents."
106
129
 
130
+ The important subtlety is that ORP does not own those agent files outright:
131
+
132
+ - if `AGENTS.md` or `CLAUDE.md` already exists, ORP preserves the human-written content and only refreshes its own marked blocks
133
+ - if the file is missing, ORP scaffolds it with a sensible starter structure
134
+ - the ORP-managed blocks can point a child repo back to a higher-level umbrella projects root when you configure one
135
+
136
+ If you keep many repos under one shared parent directory, set that umbrella root once:
137
+
138
+ ```bash
139
+ orp agents root set /absolute/path/to/projects
140
+ ```
141
+
142
+ Then initialize or resync a child repo with the parent explicitly linked:
143
+
144
+ ```bash
145
+ orp init --projects-root /absolute/path/to/projects
146
+ orp agents audit
147
+ ```
148
+
149
+ If you want to refresh the files later without rerunning the full repo bootstrap:
150
+
151
+ ```bash
152
+ orp agents sync
153
+ ```
154
+
107
155
  After that, check the repo state:
108
156
 
109
157
  ```bash
@@ -115,7 +163,7 @@ orp status --json
115
163
  This is the local-first memory layer for ongoing work.
116
164
 
117
165
  ```bash
118
- orp workspace create main-cody-1
166
+ orp workspace create mac-main --machine-label "Mac Studio"
119
167
  orp workspace list
120
168
  orp workspace tabs main
121
169
  ```
@@ -126,15 +174,21 @@ The important idea is:
126
174
 
127
175
  - the workspace ledger is not a GUI tab manager
128
176
  - it is the saved memory of where work lives
129
- - it stores paths plus exact resumable command lines
177
+ - it stores machine-specific paths plus exact resumable command lines
178
+ - it can also store portable remote repo URLs and bootstrap commands for another machine
130
179
  - it is the crash-recovery layer for you and the agent
131
180
 
181
+ This is separate from the agent-instruction hierarchy:
182
+
183
+ - `workspace` remembers concrete working continuity like paths and resume commands
184
+ - `agents` keeps the higher-level parent/child guidance files aligned
185
+
132
186
  ### 5. Save ongoing tabs and sessions
133
187
 
134
188
  If you want ORP to remember an ongoing repo path plus a resumable session, add it explicitly:
135
189
 
136
190
  ```bash
137
- orp workspace add-tab main --path /absolute/path/to/project --resume-command "codex resume <session-id>"
191
+ orp workspace add-tab main --path /absolute/path/to/project --remote-url git@github.com:org/project.git --bootstrap-command "npm install" --resume-command "codex resume <session-id>"
138
192
  ```
139
193
 
140
194
  For Claude:
@@ -161,6 +215,17 @@ or:
161
215
  resume: cd '/absolute/path/to/project' && claude --resume <session-id>
162
216
  ```
163
217
 
218
+ If you also save a remote repo and bootstrap command, `orp workspace tabs main` will show extra lines like:
219
+
220
+ ```text
221
+ remote: git@github.com:org/project.git [branch main]
222
+ clone: git clone 'git@github.com:org/project.git' 'project'
223
+ bootstrap: npm install
224
+ setup: git clone 'git@github.com:org/project.git' 'project' && cd 'project' && npm install
225
+ ```
226
+
227
+ That is the portable part a second machine can use. The local `path` and the local `resume:` line still belong to the machine that saved the session.
228
+
164
229
  To remove something from the saved ledger:
165
230
 
166
231
  ```bash
@@ -170,12 +235,168 @@ orp workspace remove-tab main --path /absolute/path/to/project
170
235
  So the `workspace` lane is really:
171
236
 
172
237
  - `create` a ledger
173
- - `add-tab` to remember a path/session
238
+ - `add-tab` to remember a path/session and, optionally, the remote/bootstrap details needed on another rig
174
239
  - `remove-tab` to prune old work
175
240
  - `tabs` to inspect exact saved recovery commands
176
241
  - `list` to see all saved workspaces
177
242
 
178
- ### 6. Set up secrets
243
+ ### 6. Create one agenda lane
244
+
245
+ This is the separate memory lane for ranked action pressure and ranked suggestions. It is intentionally distinct from `workspace`, `connections`, and `opportunities`.
246
+
247
+ Run one refresh:
248
+
249
+ ```bash
250
+ orp agenda refresh --json
251
+ ```
252
+
253
+ Check whether recurring refreshes are enabled:
254
+
255
+ ```bash
256
+ orp agenda refresh-status --json
257
+ ```
258
+
259
+ If you want ORP to refresh the agenda on a schedule, you must opt in explicitly. Nothing starts making recurring Codex calls until you enable it yourself. The starter preset is morning, afternoon, and evening:
260
+
261
+ ```bash
262
+ orp agenda enable-refreshes --json
263
+ ```
264
+
265
+ If you want your own times instead, override them directly:
266
+
267
+ ```bash
268
+ orp agenda enable-refreshes --morning 08:30 --afternoon 13:00 --evening 18:30 --json
269
+ ```
270
+
271
+ Disable the recurring refreshes any time:
272
+
273
+ ```bash
274
+ orp agenda disable-refreshes --json
275
+ ```
276
+
277
+ Inspect the saved outputs:
278
+
279
+ ```bash
280
+ orp agenda actions
281
+ orp agenda suggestions
282
+ orp agenda focus
283
+ ```
284
+
285
+ If you want ORP to optimize around one explicit north star instead of inferring it from current context:
286
+
287
+ ```bash
288
+ orp agenda set-north-star "Advance the ocular controller and ORP ecosystems"
289
+ ```
290
+
291
+ The practical model is:
292
+
293
+ - `agenda refresh` is a real Codex reasoning pass
294
+ - it reads current main-workspace context, GitHub pressure, opportunities, and connections
295
+ - it writes two saved ranked lists locally:
296
+ - `actions`
297
+ - `suggestions`
298
+ - recurring agenda refreshes are disabled by default until the user enables them
299
+ - the built-in default schedule is morning, afternoon, and evening, but user-chosen times win
300
+ - `focus` is the fastest operator and agent recall surface
301
+
302
+ ### 7. Create one connections registry
303
+
304
+ This is the separate memory lane for service accounts, data sources, deploy targets, databases, archives, and public research destinations. It is intentionally distinct from both `workspace` and `secrets`.
305
+
306
+ Inspect the built-in provider templates first if they help:
307
+
308
+ ```bash
309
+ orp connections providers
310
+ ```
311
+
312
+ Add one saved connection that references a saved ORP secret alias:
313
+
314
+ ```bash
315
+ orp connections add github-main --provider github --label "GitHub Main" --account cody --organization sproutseeds --auth-secret-alias github-main
316
+ ```
317
+
318
+ If the same service needs multiple tokens, keep them together under named secret bindings:
319
+
320
+ ```bash
321
+ orp connections add huggingface-main --provider huggingface --label "Hugging Face" --account cody --secret-binding primary=hf-main --secret-binding publish=hf-publish --secret-binding inference=hf-inference
322
+ ```
323
+
324
+ If ORP has never seen the service before, use `custom` and keep going:
325
+
326
+ ```bash
327
+ orp connections add my-science-portal --provider custom --label "My Science Portal" --url https://example.org --secret-binding primary=my-science-token
328
+ ```
329
+
330
+ Inspect or update it later:
331
+
332
+ ```bash
333
+ orp connections show github-main
334
+ orp connections list
335
+ orp connections update github-main --status paused
336
+ ```
337
+
338
+ Mirror the same registry to hosted ORP when you want the same setup on another machine:
339
+
340
+ ```bash
341
+ orp auth login
342
+ orp connections sync --json
343
+ orp connections pull --json
344
+ ```
345
+
346
+ The important idea is:
347
+
348
+ - `secrets` stores the actual sensitive value
349
+ - `connections` stores the provider/account/capability record and which secret alias or named secret bindings power it
350
+ - `workspace` stores where current work lives
351
+ - built-in providers are optional; `custom` is the straight path for anything new or specialized
352
+
353
+ ### 8. Create one opportunities board
354
+
355
+ This is the separate memory lane for contests, programs, grants, fellowships, and similar openings. It is intentionally distinct from `workspace`.
356
+
357
+ Create one board:
358
+
359
+ ```bash
360
+ orp opportunities create main-opportunities --label "Main Opportunities"
361
+ ```
362
+
363
+ Add one tracked item:
364
+
365
+ ```bash
366
+ orp opportunities add main-opportunities --title "vision-prize" --kind contest --section ocular-longevity --priority high --url https://example.com/vision-prize
367
+ ```
368
+
369
+ Inspect the board:
370
+
371
+ ```bash
372
+ orp opportunities show main-opportunities
373
+ orp opportunities focus main-opportunities --limit 5
374
+ orp opportunities list
375
+ ```
376
+
377
+ Update or remove one item:
378
+
379
+ ```bash
380
+ orp opportunities update main-opportunities vision-prize --status submitted
381
+ orp opportunities remove main-opportunities vision-prize
382
+ ```
383
+
384
+ If you authenticate later and want the same board on another machine, mirror it:
385
+
386
+ ```bash
387
+ orp auth login
388
+ orp opportunities sync main-opportunities --json
389
+ orp opportunities pull main-opportunities --json
390
+ ```
391
+
392
+ The important idea is:
393
+
394
+ - `workspace` remembers where active sessions live
395
+ - `opportunities` remembers what external openings matter
396
+ - agents can read and update both, but they should stay separate
397
+ - local-first is the default; hosted sync is optional
398
+
399
+ ### 9. Set up secrets
179
400
 
180
401
  Today, secrets are the one part of ORP that still starts from the hosted ORP account layer. So before you save or resolve secrets, log in:
181
402
 
@@ -220,6 +441,17 @@ That is the clearest beginner flow:
220
441
  4. list or show it later
221
442
  5. resolve it when you need to use it
222
443
 
444
+ If the service needs a username too, save that alongside the secret:
445
+
446
+ ```bash
447
+ orp secrets add --alias huggingface-login --label "Hugging Face Login" --provider huggingface --kind password --username cody
448
+ ```
449
+
450
+ That means ORP can remember both:
451
+
452
+ - the secret value
453
+ - the related username/login identifier
454
+
223
455
  #### Agent or script flow
224
456
 
225
457
  If an agent or script needs to save a key non-interactively, use stdin:
@@ -320,7 +552,7 @@ The right mental model is:
320
552
  - if the key is missing and you did not pass a value, ORP prompts you for it
321
553
  - `add` is the clearest first command for a brand-new human user
322
554
 
323
- ### 7. Start working safely
555
+ ### 10. Start working safely
324
556
 
325
557
  ORP's default repo-governance loop is:
326
558
 
@@ -396,7 +628,7 @@ So the checkpoint governance loop is really:
396
628
 
397
629
  That is the part of ORP that keeps the human, the agent, and the repo in check together.
398
630
 
399
- ### 8. Keep the program context visible
631
+ ### 11. Keep the program context visible
400
632
 
401
633
  If the work belongs to a longer-running research or product trajectory:
402
634
 
@@ -412,7 +644,7 @@ The distinction is:
412
644
  - `workspace` answers: where is the work physically happening?
413
645
  - `frontier` answers: where are we logically in the larger program?
414
646
 
415
- ### 9. Use optional perspective support
647
+ ### 12. Use optional perspective support
416
648
 
417
649
  When the work feels too linear, too trapped, or too narrow:
418
650
 
@@ -429,7 +661,7 @@ It is there to help with:
429
661
  - rotating the angle of attack
430
662
  - keeping the work fresh without making the workflow sloppy
431
663
 
432
- ### 10. Optional hosted sync
664
+ ### 13. Optional hosted sync
433
665
 
434
666
  Hosted ORP is not required for the local workspace ledger or repo-governance loop.
435
667
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "open-research-protocol",
3
- "version": "0.4.19",
3
+ "version": "0.4.21",
4
4
  "description": "ORP CLI (Open Research Protocol): workspace ledgers, secrets, scheduling, governed execution, and agent-friendly research workflows.",
5
5
  "license": "MIT",
6
6
  "author": "Fractal Research Group <cody@frg.earth>",