open-research-protocol 0.3.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/AGENT_INTEGRATION.md +94 -0
- package/INSTALL.md +159 -0
- package/LICENSE +22 -0
- package/PROTOCOL.md +140 -0
- package/README.md +312 -0
- package/bin/orp.js +38 -0
- package/cli/orp.py +3595 -0
- package/cone/CONTEXT_LOG.md +33 -0
- package/docs/AGENT_LOOP.md +63 -0
- package/docs/CHOOSING_OR_IGNORING_INSTRUMENTS.md +128 -0
- package/docs/CODA_ORP_CONTRACT.md +222 -0
- package/docs/CORE_ABILITY_REFOCUS_CHECKLIST.md +62 -0
- package/docs/DISCOVER.md +69 -0
- package/docs/EXTERNAL_CONTRIBUTION_GOVERNANCE.md +275 -0
- package/docs/MATHLIB_COLLABORATION_FLOW_PROMPT.md +112 -0
- package/docs/NPM_RELEASE_CHECKLIST.md +55 -0
- package/docs/ORP_V1_ATOMIC_DISCOVERY_EVOLUTION.md +186 -0
- package/docs/OSS_CONTRIBUTION_AGENT_LOOP.md +69 -0
- package/docs/PRESENTATION_BOW.md +100 -0
- package/docs/PROFILE_PACKS.md +227 -0
- package/docs/SUNFLOWER_CODA_PR_GOVERNANCE_MAPPING.md +77 -0
- package/docs/WHY_INSTRUMENTS.md +118 -0
- package/examples/README.md +21 -0
- package/examples/example_claim.md +33 -0
- package/examples/example_failed.md +24 -0
- package/examples/example_verification.md +36 -0
- package/examples/orp.erdos-problems.catalog.yml +88 -0
- package/examples/orp.external-pr-governance.yml +223 -0
- package/examples/orp.sunflower-coda.atomic.yml +144 -0
- package/examples/orp.sunflower-coda.live-compare.yml +181 -0
- package/examples/orp.sunflower-coda.pr-governance.yml +253 -0
- package/examples/packet.problem_scope.example.json +123 -0
- package/examples/reports/README.md +16 -0
- package/examples/reports/sunflower_live_compare_20.RUN_SUMMARY.md +37 -0
- package/examples/reports/sunflower_live_compare_367.RUN_SUMMARY.md +37 -0
- package/examples/reports/sunflower_live_compare_857.RUN_SUMMARY.md +37 -0
- package/llms.txt +58 -0
- package/modules/instruments/ADVERSARIAL/README.md +109 -0
- package/modules/instruments/ADVERSARIAL/TEMPLATE.md +27 -0
- package/modules/instruments/COMPRESSION/README.md +112 -0
- package/modules/instruments/COMPRESSION/TEMPLATE.md +27 -0
- package/modules/instruments/INSTRUMENT_TEMPLATE.md +30 -0
- package/modules/instruments/ORBIT/README.md +124 -0
- package/modules/instruments/ORBIT/TEMPLATE.md +28 -0
- package/modules/instruments/README.md +179 -0
- package/package.json +54 -0
- package/packs/README.md +16 -0
- package/packs/erdos-open-problems/README.md +287 -0
- package/packs/erdos-open-problems/data/README.md +43 -0
- package/packs/erdos-open-problems/data/erdos_open_problems.md +697 -0
- package/packs/erdos-open-problems/data/erdos_problems.active.json +15561 -0
- package/packs/erdos-open-problems/data/erdos_problems.all.json +26289 -0
- package/packs/erdos-open-problems/data/erdos_problems.closed.json +10760 -0
- package/packs/erdos-open-problems/data/erdos_problems.open.json +15561 -0
- package/packs/erdos-open-problems/docs/SUNFLOWER_ADAPTER_DEPENDENCIES.md +63 -0
- package/packs/erdos-open-problems/pack.yml +131 -0
- package/packs/erdos-open-problems/profiles/erdos-problems-catalog-sync.yml.tmpl +99 -0
- package/packs/erdos-open-problems/profiles/sunflower-live-compare.yml.tmpl +188 -0
- package/packs/erdos-open-problems/profiles/sunflower-mathlib-pr-governance.yml.tmpl +253 -0
- package/packs/erdos-open-problems/profiles/sunflower-problem857-discovery-public-repo.yml.tmpl +152 -0
- package/packs/erdos-open-problems/profiles/sunflower-problem857-discovery.yml.tmpl +154 -0
- package/packs/external-pr-governance/README.md +116 -0
- package/packs/external-pr-governance/adapters/formal-conjectures/README.md +35 -0
- package/packs/external-pr-governance/adapters/mathlib/README.md +37 -0
- package/packs/external-pr-governance/pack.yml +146 -0
- package/packs/external-pr-governance/profiles/oss-feedback-hardening.yml.tmpl +92 -0
- package/packs/external-pr-governance/profiles/oss-pr-governance.yml.tmpl +233 -0
- package/packs/issue-smashers/README.md +92 -0
- package/packs/issue-smashers/adapters/formal-conjectures/README.md +17 -0
- package/packs/issue-smashers/adapters/generic-github/README.md +16 -0
- package/packs/issue-smashers/adapters/mathlib/README.md +32 -0
- package/packs/issue-smashers/bootstrap/README.md +19 -0
- package/packs/issue-smashers/bootstrap/setup-issue-smashers.sh +18 -0
- package/packs/issue-smashers/examples/issue-smashers.workspace.yml +24 -0
- package/packs/issue-smashers/pack.yml +178 -0
- package/packs/issue-smashers/profiles/issue-smashers-feedback-hardening.yml.tmpl +102 -0
- package/packs/issue-smashers/profiles/issue-smashers.yml.tmpl +258 -0
- package/scripts/npm-postinstall-check.js +31 -0
- package/scripts/orp +11 -0
- package/scripts/orp-agent-integrate.sh +197 -0
- package/scripts/orp-checkpoint.sh +184 -0
- package/scripts/orp-erdos-problems-sync.py +580 -0
- package/scripts/orp-init.sh +50 -0
- package/scripts/orp-pack-fetch.py +155 -0
- package/scripts/orp-pack-install.py +2273 -0
- package/scripts/orp-pack-render.py +188 -0
- package/spec/v1/LIFECYCLE_MAPPING.md +40 -0
- package/spec/v1/orp.config.schema.json +385 -0
- package/spec/v1/packet.schema.json +552 -0
- package/spec/v1/profile-pack.schema.json +95 -0
- package/templates/CLAIM.md +33 -0
- package/templates/FAILED_TOPIC.md +19 -0
- package/templates/ISSUE_TEMPLATE.md +22 -0
- package/templates/VERIFICATION_RECORD.md +34 -0
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Context Log (process-only; not evidence)
|
|
2
|
+
|
|
3
|
+
> This file is **not evidence**. It is a running, lightweight trace of “what’s going on” to support handoff, compaction, and
|
|
4
|
+
> coordination.
|
|
5
|
+
>
|
|
6
|
+
> Keep entries neutral: hypotheses, decisions, links, next hooks. Avoid “proving” anything here.
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## How to use
|
|
11
|
+
|
|
12
|
+
- Add an entry at major transitions:
|
|
13
|
+
- after context compaction/summarization
|
|
14
|
+
- before `git commit` / `git push` (optional but recommended for agentic workflows)
|
|
15
|
+
- before publishing a **Verified/Exact** claim
|
|
16
|
+
- at handoff (“here’s the state; here’s next”)
|
|
17
|
+
- Prefer links to canonical artifacts (code/data/logs) rather than reproducing content here.
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Entry template
|
|
22
|
+
|
|
23
|
+
### Checkpoint — YYYY-MM-DDTHH:MM:SSZ
|
|
24
|
+
- Note:
|
|
25
|
+
- Repo state:
|
|
26
|
+
- Branch:
|
|
27
|
+
- Head:
|
|
28
|
+
- Git status: staged=?, unstaged=?, untracked=?
|
|
29
|
+
- ORP snippet sync:
|
|
30
|
+
- Agent instruction files checked:
|
|
31
|
+
- Result: PASS / FAIL / (skipped)
|
|
32
|
+
- Canonical artifacts touched (paths only):
|
|
33
|
+
- Next hook:
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# ORP Agent Loop
|
|
2
|
+
|
|
3
|
+
Use this loop when an AI agent is the primary operator of an ORP-enabled repo.
|
|
4
|
+
|
|
5
|
+
## 1. Discover
|
|
6
|
+
|
|
7
|
+
- Read `llms.txt`.
|
|
8
|
+
- Run `orp about --json`.
|
|
9
|
+
- If packs matter, run `orp pack list --json`.
|
|
10
|
+
- Read `PROTOCOL.md` before making claims.
|
|
11
|
+
- If the task is external OSS contribution workflow or PR governance, read
|
|
12
|
+
`docs/EXTERNAL_CONTRIBUTION_GOVERNANCE.md` before selecting work.
|
|
13
|
+
- For the more detailed external-contribution operator rhythm, then read
|
|
14
|
+
`docs/OSS_CONTRIBUTION_AGENT_LOOP.md`.
|
|
15
|
+
|
|
16
|
+
## 2. Select Work
|
|
17
|
+
|
|
18
|
+
- Identify the target profile and canonical artifact paths.
|
|
19
|
+
- If a pack-backed workflow needs setup, run:
|
|
20
|
+
- `orp pack install --pack-id <pack-id> --json`
|
|
21
|
+
- or `orp pack fetch --source <git-url> --pack-id <pack-id> --install-target . --json`
|
|
22
|
+
- If the workflow depends on public Erdos data, sync it first:
|
|
23
|
+
- `orp erdos sync --problem-id <id> --out-problem-dir <dir> --json`
|
|
24
|
+
|
|
25
|
+
## 3. Run
|
|
26
|
+
|
|
27
|
+
- Execute the target workflow:
|
|
28
|
+
- `orp gate run --profile <profile> --json`
|
|
29
|
+
- Treat the resulting `run_id` as the handle for follow-on steps.
|
|
30
|
+
|
|
31
|
+
## 4. Emit Process Metadata
|
|
32
|
+
|
|
33
|
+
- Write the packet:
|
|
34
|
+
- `orp packet emit --profile <profile> --run-id <run_id> --json`
|
|
35
|
+
- Packets are process metadata only. They are not evidence.
|
|
36
|
+
|
|
37
|
+
## 5. Render Human Review Output
|
|
38
|
+
|
|
39
|
+
- Write the one-page digest:
|
|
40
|
+
- `orp report summary --run-id <run_id> --json`
|
|
41
|
+
- Share the generated `RUN_SUMMARY.md` with humans when a fast review artifact is useful.
|
|
42
|
+
- Read `RUN.json.epistemic_status` and packet `evidence_status` before making any claim about what counts as evidence versus starter scaffolding.
|
|
43
|
+
|
|
44
|
+
## 6. Checkpoint
|
|
45
|
+
|
|
46
|
+
- Before handoff, compaction, `git commit`, or `git push`, write a checkpoint:
|
|
47
|
+
- `scripts/orp-checkpoint.sh --sync --agent-file /path/to/agent/instructions.md "checkpoint note"`
|
|
48
|
+
|
|
49
|
+
## 7. Respect the Boundary
|
|
50
|
+
|
|
51
|
+
- ORP docs, packets, and summaries are process artifacts.
|
|
52
|
+
- Evidence must remain in canonical artifact paths such as code, data, proofs, logs, and papers.
|
|
53
|
+
- If verification fails, downgrade the claim immediately and preserve the failed path.
|
|
54
|
+
|
|
55
|
+
## Minimal Public Example
|
|
56
|
+
|
|
57
|
+
```sh
|
|
58
|
+
orp about --json
|
|
59
|
+
orp pack install --pack-id erdos-open-problems --include catalog --json
|
|
60
|
+
orp --config orp.erdos-catalog-sync.yml gate run --profile erdos_catalog_sync_active --json
|
|
61
|
+
orp --config orp.erdos-catalog-sync.yml packet emit --profile erdos_catalog_sync_active --json
|
|
62
|
+
orp --config orp.erdos-catalog-sync.yml report summary --json
|
|
63
|
+
```
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
# Choosing (or Ignoring) Instruments
|
|
2
|
+
|
|
3
|
+
> *Instruments are available, not required.*
|
|
4
|
+
|
|
5
|
+
This document explains **when to use an instrument**, **when not to**, and shows a small example of both paths. The goal is clarity without pressure.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## The Short Rule
|
|
10
|
+
|
|
11
|
+
You do **not** need an instrument to use ORP.
|
|
12
|
+
|
|
13
|
+
ORP functions fully with:
|
|
14
|
+
- clear claims
|
|
15
|
+
- explicit verification hooks
|
|
16
|
+
- honest downgrade or failure recording
|
|
17
|
+
|
|
18
|
+
Instruments are optional tools for **upstream framing**, nothing more.
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## When an Instrument Helps
|
|
23
|
+
|
|
24
|
+
Consider using an instrument if:
|
|
25
|
+
|
|
26
|
+
- the problem feels large, vague, or multidimensional
|
|
27
|
+
- you are unsure what to measure first
|
|
28
|
+
- competing intuitions are pulling in different directions
|
|
29
|
+
- you want to generate *predictions* before making claims
|
|
30
|
+
|
|
31
|
+
An instrument helps you choose *where to stand* before you speak.
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## When to Ignore Instruments
|
|
36
|
+
|
|
37
|
+
It is often better to skip instruments when:
|
|
38
|
+
|
|
39
|
+
- the claim is narrow and well-defined
|
|
40
|
+
- the verification method is obvious
|
|
41
|
+
- you are extending known work incrementally
|
|
42
|
+
- speed matters more than framing
|
|
43
|
+
|
|
44
|
+
Skipping instruments is not a shortcut.
|
|
45
|
+
It is a valid choice.
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## How to Choose an Instrument (If You Do)
|
|
50
|
+
|
|
51
|
+
Ask one simple question:
|
|
52
|
+
|
|
53
|
+
> *What kind of uncertainty am I facing?*
|
|
54
|
+
|
|
55
|
+
Then choose accordingly:
|
|
56
|
+
|
|
57
|
+
- **Orbit Lens** → uncertainty about *stability, balance, or persistence*
|
|
58
|
+
- **Compression Lens** → uncertainty about *what really matters*
|
|
59
|
+
- **Adversarial Lens** → uncertainty about *hidden failure modes*
|
|
60
|
+
|
|
61
|
+
You may use more than one — or none.
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## Tiny Example A: Using an Instrument
|
|
66
|
+
|
|
67
|
+
**Context:** Studying a large combinatorial family suspected to be extremal.
|
|
68
|
+
|
|
69
|
+
Before making a claim, you apply the **Orbit Lens**:
|
|
70
|
+
- forces: structure vs entropy
|
|
71
|
+
- distance knob: density of the family
|
|
72
|
+
- invariant: collision count under projection
|
|
73
|
+
|
|
74
|
+
**Result:**
|
|
75
|
+
You predict that beyond a certain density, collisions must explode.
|
|
76
|
+
|
|
77
|
+
**Then:**
|
|
78
|
+
You write a claim in ORP:
|
|
79
|
+
> *Claim:* Any family exceeding density X contains a forbidden configuration.
|
|
80
|
+
>
|
|
81
|
+
> *Instrument used:* Orbit Lens (density regime)
|
|
82
|
+
>
|
|
83
|
+
> *Verification:* SAT search + counting argument
|
|
84
|
+
|
|
85
|
+
Verification proceeds normally.
|
|
86
|
+
The instrument does not affect acceptance.
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## Tiny Example B: Ignoring Instruments
|
|
91
|
+
|
|
92
|
+
**Context:** Checking whether a specific bound holds for n ≤ 10.
|
|
93
|
+
|
|
94
|
+
You already know:
|
|
95
|
+
- what to compute
|
|
96
|
+
- how to verify it
|
|
97
|
+
|
|
98
|
+
You write a claim directly:
|
|
99
|
+
> *Claim:* Bound Y holds for all n ≤ 10.
|
|
100
|
+
>
|
|
101
|
+
> *Verification:* Exhaustive computation
|
|
102
|
+
|
|
103
|
+
No instrument is referenced.
|
|
104
|
+
This is fully valid ORP usage.
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## Important Boundary
|
|
109
|
+
|
|
110
|
+
Instruments:
|
|
111
|
+
- influence *what questions are asked*
|
|
112
|
+
- never influence *whether a claim is accepted*
|
|
113
|
+
|
|
114
|
+
Verification is blind to framing.
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## Final Reassurance
|
|
119
|
+
|
|
120
|
+
If you:
|
|
121
|
+
- never use an instrument, ORP still works
|
|
122
|
+
- use one instrument, ORP still works
|
|
123
|
+
- invent a new instrument, ORP still works
|
|
124
|
+
|
|
125
|
+
Instruments are an invitation, not an obligation.
|
|
126
|
+
|
|
127
|
+
*Use them when they help. Ignore them when they don’t.*
|
|
128
|
+
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
# Coda to ORP Contract
|
|
2
|
+
|
|
3
|
+
This document defines the boundary between:
|
|
4
|
+
|
|
5
|
+
- `codacli.com` / `coda-cli`
|
|
6
|
+
- `ORP`
|
|
7
|
+
|
|
8
|
+
The goal is to let both systems work together without turning ORP into an app
|
|
9
|
+
backend or turning Coda into a second protocol runtime.
|
|
10
|
+
|
|
11
|
+
## Repository Split
|
|
12
|
+
|
|
13
|
+
Recommended shape:
|
|
14
|
+
|
|
15
|
+
- `orp` repo
|
|
16
|
+
- protocol/runtime
|
|
17
|
+
- discovery execution
|
|
18
|
+
- collaboration execution
|
|
19
|
+
- packets, run records, summaries
|
|
20
|
+
- portable local-first CLI
|
|
21
|
+
- `coda-cli` repo
|
|
22
|
+
- operator-facing wrapper
|
|
23
|
+
- active profile selection
|
|
24
|
+
- auth/session handling
|
|
25
|
+
- Coda export retrieval
|
|
26
|
+
- convenience commands layered over ORP
|
|
27
|
+
- `codacli.com`
|
|
28
|
+
- authenticated web product
|
|
29
|
+
- user database
|
|
30
|
+
- idea cards
|
|
31
|
+
- feature scaffolds
|
|
32
|
+
- notes/detail sections
|
|
33
|
+
- export surface for agents and `coda-cli`
|
|
34
|
+
|
|
35
|
+
## Ownership Boundary
|
|
36
|
+
|
|
37
|
+
Coda owns:
|
|
38
|
+
|
|
39
|
+
- user identity
|
|
40
|
+
- database records
|
|
41
|
+
- idea cards
|
|
42
|
+
- categories
|
|
43
|
+
- feature scaffolds
|
|
44
|
+
- note/detail sections
|
|
45
|
+
- active context selection
|
|
46
|
+
- export APIs / export files
|
|
47
|
+
|
|
48
|
+
ORP owns:
|
|
49
|
+
|
|
50
|
+
- portable discovery profile format
|
|
51
|
+
- GitHub discovery scans
|
|
52
|
+
- collaboration workflows
|
|
53
|
+
- gate execution
|
|
54
|
+
- packets
|
|
55
|
+
- run summaries
|
|
56
|
+
- process artifacts
|
|
57
|
+
|
|
58
|
+
In short:
|
|
59
|
+
|
|
60
|
+
- Coda answers: "What does this user care about right now?"
|
|
61
|
+
- ORP answers: "How do we discover, structure, and execute the work?"
|
|
62
|
+
|
|
63
|
+
## MVP Rule
|
|
64
|
+
|
|
65
|
+
The MVP should be read-only from Coda into ORP.
|
|
66
|
+
|
|
67
|
+
That means:
|
|
68
|
+
|
|
69
|
+
- Coda exports context
|
|
70
|
+
- ORP consumes derived context
|
|
71
|
+
- ORP produces scan/run artifacts
|
|
72
|
+
- Coda may read those artifacts later
|
|
73
|
+
- ORP does not write back into Coda yet
|
|
74
|
+
|
|
75
|
+
This keeps the first integration simple and auditable.
|
|
76
|
+
|
|
77
|
+
## Canonical Coda Export
|
|
78
|
+
|
|
79
|
+
Coda should expose a canonical export that reflects the app's richer data
|
|
80
|
+
model.
|
|
81
|
+
|
|
82
|
+
Example shape:
|
|
83
|
+
|
|
84
|
+
```json
|
|
85
|
+
{
|
|
86
|
+
"schema_version": "1.0.0",
|
|
87
|
+
"user": {
|
|
88
|
+
"id": "user_123",
|
|
89
|
+
"handle": "cody"
|
|
90
|
+
},
|
|
91
|
+
"active_context": {
|
|
92
|
+
"idea_id": "idea_problem857",
|
|
93
|
+
"title": "Sunflower formalization work",
|
|
94
|
+
"categories": ["math", "lean", "formalization"]
|
|
95
|
+
},
|
|
96
|
+
"ideas": [
|
|
97
|
+
{
|
|
98
|
+
"id": "idea_problem857",
|
|
99
|
+
"title": "Sunflower formalization work",
|
|
100
|
+
"summary": "Look for repos and issues aligned with Problem 857 work.",
|
|
101
|
+
"tags": ["sunflower", "lean", "proof"],
|
|
102
|
+
"feature_scaffold": {
|
|
103
|
+
"areas": ["balance", "container", "docs"],
|
|
104
|
+
"notes": ["Prefer public repos first."]
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
]
|
|
108
|
+
}
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
ORP should not depend directly on the full Coda export schema.
|
|
112
|
+
|
|
113
|
+
## Derived ORP Inputs
|
|
114
|
+
|
|
115
|
+
`coda-cli` should derive smaller ORP-native inputs from the richer Coda export.
|
|
116
|
+
|
|
117
|
+
The first derived input is an ORP discovery profile.
|
|
118
|
+
|
|
119
|
+
Example:
|
|
120
|
+
|
|
121
|
+
```json
|
|
122
|
+
{
|
|
123
|
+
"schema_version": "1.0.0",
|
|
124
|
+
"profile_id": "idea_problem857",
|
|
125
|
+
"notes": [
|
|
126
|
+
"Derived from Coda active context."
|
|
127
|
+
],
|
|
128
|
+
"discover": {
|
|
129
|
+
"github": {
|
|
130
|
+
"owner": {
|
|
131
|
+
"login": "SproutSeeds",
|
|
132
|
+
"type": "org"
|
|
133
|
+
},
|
|
134
|
+
"signals": {
|
|
135
|
+
"keywords": ["sunflower", "formalization", "proof"],
|
|
136
|
+
"repo_topics": ["lean", "math"],
|
|
137
|
+
"languages": ["Lean"],
|
|
138
|
+
"areas": ["balance", "container", "docs"],
|
|
139
|
+
"people": []
|
|
140
|
+
},
|
|
141
|
+
"filters": {
|
|
142
|
+
"include_repos": [],
|
|
143
|
+
"exclude_repos": [],
|
|
144
|
+
"issue_states": ["open"],
|
|
145
|
+
"labels_any": [],
|
|
146
|
+
"exclude_labels": [],
|
|
147
|
+
"updated_within_days": 180
|
|
148
|
+
},
|
|
149
|
+
"ranking": {
|
|
150
|
+
"repo_sample_size": 30,
|
|
151
|
+
"max_repos": 12,
|
|
152
|
+
"max_issues": 24,
|
|
153
|
+
"max_people": 12,
|
|
154
|
+
"issues_per_repo": 30
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
Other future derived inputs may include:
|
|
162
|
+
|
|
163
|
+
- collaboration bootstrap hints
|
|
164
|
+
- target repo selection
|
|
165
|
+
- issue lane selection
|
|
166
|
+
- preferred adapters
|
|
167
|
+
|
|
168
|
+
## ORP Outputs Coda May Read
|
|
169
|
+
|
|
170
|
+
For the first integration, Coda should treat ORP outputs as read-only runtime
|
|
171
|
+
artifacts.
|
|
172
|
+
|
|
173
|
+
Useful outputs:
|
|
174
|
+
|
|
175
|
+
- `orp/discovery/github/<scan_id>/SCAN.json`
|
|
176
|
+
- `orp/discovery/github/<scan_id>/SCAN_SUMMARY.md`
|
|
177
|
+
- `orp/artifacts/<run_id>/RUN.json`
|
|
178
|
+
- `orp/artifacts/<run_id>/RUN_SUMMARY.md`
|
|
179
|
+
- `orp/packets/<packet_id>.json`
|
|
180
|
+
|
|
181
|
+
These let Coda display:
|
|
182
|
+
|
|
183
|
+
- recommended repos/issues/people
|
|
184
|
+
- latest collaboration run results
|
|
185
|
+
- packetized process context
|
|
186
|
+
|
|
187
|
+
## CLI Relationship
|
|
188
|
+
|
|
189
|
+
`coda-cli` should be a thin wrapper over ORP, not a second workflow engine.
|
|
190
|
+
|
|
191
|
+
Good examples:
|
|
192
|
+
|
|
193
|
+
- `coda profile export`
|
|
194
|
+
- `coda profile use <idea-id>`
|
|
195
|
+
- `coda discover`
|
|
196
|
+
- `coda collaborate init`
|
|
197
|
+
|
|
198
|
+
Under the hood, those should call ORP's JSON surfaces such as:
|
|
199
|
+
|
|
200
|
+
- `orp discover profile init --json`
|
|
201
|
+
- `orp discover github scan --json`
|
|
202
|
+
- `orp collaborate init --json`
|
|
203
|
+
- `orp collaborate run --json`
|
|
204
|
+
|
|
205
|
+
## Non-Goals For ORP
|
|
206
|
+
|
|
207
|
+
ORP should not own:
|
|
208
|
+
|
|
209
|
+
- authenticated user databases
|
|
210
|
+
- profile sharing semantics
|
|
211
|
+
- team/private visibility policy
|
|
212
|
+
- app-level note editing
|
|
213
|
+
- direct mutation of Coda records
|
|
214
|
+
|
|
215
|
+
Those belong in Coda.
|
|
216
|
+
|
|
217
|
+
## Practical Rule
|
|
218
|
+
|
|
219
|
+
When in doubt:
|
|
220
|
+
|
|
221
|
+
- if it is portable execution or protocol data, keep it in ORP
|
|
222
|
+
- if it is user/app context or authenticated product state, keep it in Coda
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# ORP Core Ability Refocus Checklist
|
|
2
|
+
|
|
3
|
+
This checklist tracks the shift from a pack-first public story to an
|
|
4
|
+
ability-first ORP CLI.
|
|
5
|
+
|
|
6
|
+
## Product Shape
|
|
7
|
+
|
|
8
|
+
- [x] Discovery is presented as a built-in ORP ability.
|
|
9
|
+
- [x] Bare `orp` opens a home screen instead of only failing on missing
|
|
10
|
+
subcommands.
|
|
11
|
+
- [x] Collaboration is presented as a built-in ORP ability.
|
|
12
|
+
- [x] `erdos` remains a domain-specific ORP ability.
|
|
13
|
+
- [x] Packs remain available for advanced/internal use.
|
|
14
|
+
- [ ] The released npm package includes the new collaboration-first surface.
|
|
15
|
+
|
|
16
|
+
## Default User Story
|
|
17
|
+
|
|
18
|
+
- [x] `orp discover profile init` scaffolds a portable discovery profile.
|
|
19
|
+
- [x] `orp discover github scan` ranks repo, issue, and people opportunities
|
|
20
|
+
inside a GitHub owner space.
|
|
21
|
+
- [x] `orp collaborate init` is the fastest collaboration setup path.
|
|
22
|
+
- [x] `orp collaborate workflows` exposes built-in collaboration workflows.
|
|
23
|
+
- [x] `orp collaborate gates --workflow <id>` shows the gate chain before a run.
|
|
24
|
+
- [x] `orp collaborate run --workflow <id>` runs the built-in collaboration
|
|
25
|
+
workflow.
|
|
26
|
+
- [x] README points users at `orp collaborate ...` first.
|
|
27
|
+
- [x] INSTALL points users at `orp collaborate ...` first.
|
|
28
|
+
- [ ] Add a collaboration-specific summary/example doc if real users still need
|
|
29
|
+
more onboarding.
|
|
30
|
+
|
|
31
|
+
## Advanced / Internal Story
|
|
32
|
+
|
|
33
|
+
- [x] `pack` is still available.
|
|
34
|
+
- [x] Home screen labels packs as advanced bundles.
|
|
35
|
+
- [x] Pack docs remain available for ORP maintainers and advanced users.
|
|
36
|
+
- [ ] Decide later whether `external-pr-governance` and `issue-smashers` stay
|
|
37
|
+
as visible internal names or become more hidden implementation details.
|
|
38
|
+
|
|
39
|
+
## Machine-Readable Discovery
|
|
40
|
+
|
|
41
|
+
- [x] `orp home --json` exists.
|
|
42
|
+
- [x] `orp about --json` exists.
|
|
43
|
+
- [x] `orp about --json` exposes commands.
|
|
44
|
+
- [x] `orp about --json` exposes abilities.
|
|
45
|
+
- [x] `orp discover ... --json` exists.
|
|
46
|
+
- [x] `orp collaborate workflows --json` exists.
|
|
47
|
+
- [x] `orp collaborate gates --json` exists.
|
|
48
|
+
- [ ] Add a machine-readable examples surface if agents still need more direct
|
|
49
|
+
task discovery.
|
|
50
|
+
|
|
51
|
+
## Domain Shape
|
|
52
|
+
|
|
53
|
+
- [x] Collaboration is part of ORP core UX.
|
|
54
|
+
- [x] Erdos stays separate.
|
|
55
|
+
- [ ] Decide whether `erdos` should gain a matching `workflows` / `run`
|
|
56
|
+
surface for symmetry with `collaborate`.
|
|
57
|
+
|
|
58
|
+
## Release Checklist
|
|
59
|
+
|
|
60
|
+
- [ ] Commit the collaboration-first refocus.
|
|
61
|
+
- [ ] Release the next npm version.
|
|
62
|
+
- [ ] Validate the collaboration-first story from a clean published install.
|
package/docs/DISCOVER.md
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# ORP Discover
|
|
2
|
+
|
|
3
|
+
`orp discover` is ORP's built-in discovery ability for finding promising work
|
|
4
|
+
inside a GitHub owner space.
|
|
5
|
+
|
|
6
|
+
The first concrete surface is a GitHub profile scanner:
|
|
7
|
+
|
|
8
|
+
- scaffold a discovery profile
|
|
9
|
+
- define keywords, languages, topics, areas, and people signals
|
|
10
|
+
- scan a GitHub user or organization
|
|
11
|
+
- rank repositories, issues, and active people
|
|
12
|
+
- hand off the strongest match into `orp collaborate`
|
|
13
|
+
|
|
14
|
+
Today ORP scans public GitHub owner space by default. If richer access policy
|
|
15
|
+
or profile governance exists later, that belongs in Coda rather than in ORP.
|
|
16
|
+
|
|
17
|
+
## Commands
|
|
18
|
+
|
|
19
|
+
Scaffold a profile:
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
orp discover profile init --owner SproutSeeds --owner-type org --json
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Run a scan:
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
orp discover github scan --profile orp.profile.default.json --json
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Profile Model
|
|
32
|
+
|
|
33
|
+
Discovery profiles are portable JSON files owned by ORP.
|
|
34
|
+
|
|
35
|
+
Current profile fields let you shape:
|
|
36
|
+
|
|
37
|
+
- GitHub owner scope
|
|
38
|
+
- keywords
|
|
39
|
+
- repo topics
|
|
40
|
+
- languages
|
|
41
|
+
- area terms
|
|
42
|
+
- people signals
|
|
43
|
+
- repo and issue filters
|
|
44
|
+
- ranking limits
|
|
45
|
+
|
|
46
|
+
## Artifacts
|
|
47
|
+
|
|
48
|
+
GitHub scans write:
|
|
49
|
+
|
|
50
|
+
- `orp/discovery/github/<scan_id>/SCAN.json`
|
|
51
|
+
- `orp/discovery/github/<scan_id>/SCAN_SUMMARY.md`
|
|
52
|
+
|
|
53
|
+
These are process-only recommendation artifacts, not evidence.
|
|
54
|
+
|
|
55
|
+
## Coda Relationship
|
|
56
|
+
|
|
57
|
+
ORP should own the portable discovery profile format and the scanning
|
|
58
|
+
artifacts.
|
|
59
|
+
|
|
60
|
+
If `coda-cli` exists later, the clean role for Coda is:
|
|
61
|
+
|
|
62
|
+
- manage active profiles
|
|
63
|
+
- switch between operator contexts
|
|
64
|
+
- wrap ORP commands for a smoother operator UX
|
|
65
|
+
|
|
66
|
+
That keeps ORP as the protocol/runtime while letting Coda become a higher-level
|
|
67
|
+
profile manager if it earns its place.
|
|
68
|
+
|
|
69
|
+
For the fuller boundary, see `docs/CODA_ORP_CONTRACT.md`.
|