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.
Files changed (94) hide show
  1. package/AGENT_INTEGRATION.md +94 -0
  2. package/INSTALL.md +159 -0
  3. package/LICENSE +22 -0
  4. package/PROTOCOL.md +140 -0
  5. package/README.md +312 -0
  6. package/bin/orp.js +38 -0
  7. package/cli/orp.py +3595 -0
  8. package/cone/CONTEXT_LOG.md +33 -0
  9. package/docs/AGENT_LOOP.md +63 -0
  10. package/docs/CHOOSING_OR_IGNORING_INSTRUMENTS.md +128 -0
  11. package/docs/CODA_ORP_CONTRACT.md +222 -0
  12. package/docs/CORE_ABILITY_REFOCUS_CHECKLIST.md +62 -0
  13. package/docs/DISCOVER.md +69 -0
  14. package/docs/EXTERNAL_CONTRIBUTION_GOVERNANCE.md +275 -0
  15. package/docs/MATHLIB_COLLABORATION_FLOW_PROMPT.md +112 -0
  16. package/docs/NPM_RELEASE_CHECKLIST.md +55 -0
  17. package/docs/ORP_V1_ATOMIC_DISCOVERY_EVOLUTION.md +186 -0
  18. package/docs/OSS_CONTRIBUTION_AGENT_LOOP.md +69 -0
  19. package/docs/PRESENTATION_BOW.md +100 -0
  20. package/docs/PROFILE_PACKS.md +227 -0
  21. package/docs/SUNFLOWER_CODA_PR_GOVERNANCE_MAPPING.md +77 -0
  22. package/docs/WHY_INSTRUMENTS.md +118 -0
  23. package/examples/README.md +21 -0
  24. package/examples/example_claim.md +33 -0
  25. package/examples/example_failed.md +24 -0
  26. package/examples/example_verification.md +36 -0
  27. package/examples/orp.erdos-problems.catalog.yml +88 -0
  28. package/examples/orp.external-pr-governance.yml +223 -0
  29. package/examples/orp.sunflower-coda.atomic.yml +144 -0
  30. package/examples/orp.sunflower-coda.live-compare.yml +181 -0
  31. package/examples/orp.sunflower-coda.pr-governance.yml +253 -0
  32. package/examples/packet.problem_scope.example.json +123 -0
  33. package/examples/reports/README.md +16 -0
  34. package/examples/reports/sunflower_live_compare_20.RUN_SUMMARY.md +37 -0
  35. package/examples/reports/sunflower_live_compare_367.RUN_SUMMARY.md +37 -0
  36. package/examples/reports/sunflower_live_compare_857.RUN_SUMMARY.md +37 -0
  37. package/llms.txt +58 -0
  38. package/modules/instruments/ADVERSARIAL/README.md +109 -0
  39. package/modules/instruments/ADVERSARIAL/TEMPLATE.md +27 -0
  40. package/modules/instruments/COMPRESSION/README.md +112 -0
  41. package/modules/instruments/COMPRESSION/TEMPLATE.md +27 -0
  42. package/modules/instruments/INSTRUMENT_TEMPLATE.md +30 -0
  43. package/modules/instruments/ORBIT/README.md +124 -0
  44. package/modules/instruments/ORBIT/TEMPLATE.md +28 -0
  45. package/modules/instruments/README.md +179 -0
  46. package/package.json +54 -0
  47. package/packs/README.md +16 -0
  48. package/packs/erdos-open-problems/README.md +287 -0
  49. package/packs/erdos-open-problems/data/README.md +43 -0
  50. package/packs/erdos-open-problems/data/erdos_open_problems.md +697 -0
  51. package/packs/erdos-open-problems/data/erdos_problems.active.json +15561 -0
  52. package/packs/erdos-open-problems/data/erdos_problems.all.json +26289 -0
  53. package/packs/erdos-open-problems/data/erdos_problems.closed.json +10760 -0
  54. package/packs/erdos-open-problems/data/erdos_problems.open.json +15561 -0
  55. package/packs/erdos-open-problems/docs/SUNFLOWER_ADAPTER_DEPENDENCIES.md +63 -0
  56. package/packs/erdos-open-problems/pack.yml +131 -0
  57. package/packs/erdos-open-problems/profiles/erdos-problems-catalog-sync.yml.tmpl +99 -0
  58. package/packs/erdos-open-problems/profiles/sunflower-live-compare.yml.tmpl +188 -0
  59. package/packs/erdos-open-problems/profiles/sunflower-mathlib-pr-governance.yml.tmpl +253 -0
  60. package/packs/erdos-open-problems/profiles/sunflower-problem857-discovery-public-repo.yml.tmpl +152 -0
  61. package/packs/erdos-open-problems/profiles/sunflower-problem857-discovery.yml.tmpl +154 -0
  62. package/packs/external-pr-governance/README.md +116 -0
  63. package/packs/external-pr-governance/adapters/formal-conjectures/README.md +35 -0
  64. package/packs/external-pr-governance/adapters/mathlib/README.md +37 -0
  65. package/packs/external-pr-governance/pack.yml +146 -0
  66. package/packs/external-pr-governance/profiles/oss-feedback-hardening.yml.tmpl +92 -0
  67. package/packs/external-pr-governance/profiles/oss-pr-governance.yml.tmpl +233 -0
  68. package/packs/issue-smashers/README.md +92 -0
  69. package/packs/issue-smashers/adapters/formal-conjectures/README.md +17 -0
  70. package/packs/issue-smashers/adapters/generic-github/README.md +16 -0
  71. package/packs/issue-smashers/adapters/mathlib/README.md +32 -0
  72. package/packs/issue-smashers/bootstrap/README.md +19 -0
  73. package/packs/issue-smashers/bootstrap/setup-issue-smashers.sh +18 -0
  74. package/packs/issue-smashers/examples/issue-smashers.workspace.yml +24 -0
  75. package/packs/issue-smashers/pack.yml +178 -0
  76. package/packs/issue-smashers/profiles/issue-smashers-feedback-hardening.yml.tmpl +102 -0
  77. package/packs/issue-smashers/profiles/issue-smashers.yml.tmpl +258 -0
  78. package/scripts/npm-postinstall-check.js +31 -0
  79. package/scripts/orp +11 -0
  80. package/scripts/orp-agent-integrate.sh +197 -0
  81. package/scripts/orp-checkpoint.sh +184 -0
  82. package/scripts/orp-erdos-problems-sync.py +580 -0
  83. package/scripts/orp-init.sh +50 -0
  84. package/scripts/orp-pack-fetch.py +155 -0
  85. package/scripts/orp-pack-install.py +2273 -0
  86. package/scripts/orp-pack-render.py +188 -0
  87. package/spec/v1/LIFECYCLE_MAPPING.md +40 -0
  88. package/spec/v1/orp.config.schema.json +385 -0
  89. package/spec/v1/packet.schema.json +552 -0
  90. package/spec/v1/profile-pack.schema.json +95 -0
  91. package/templates/CLAIM.md +33 -0
  92. package/templates/FAILED_TOPIC.md +19 -0
  93. package/templates/ISSUE_TEMPLATE.md +22 -0
  94. package/templates/VERIFICATION_RECORD.md +34 -0
@@ -0,0 +1,253 @@
1
+ version: "1"
2
+
3
+ project:
4
+ name: sunflower-coda-mathlib-pr-governance
5
+ repo_root: .
6
+ canonical_paths:
7
+ checklist_doc: /path/to/sunflower-coda/repo/docs/MATHLIB_SUBMISSION_CHECKLIST.md
8
+ issue_viability_doc: /path/to/sunflower-coda/repo/docs/MATHLIB_ISSUE_VIABILITY_GATE.md
9
+ draft_pr_template_doc: /path/to/sunflower-coda/repo/docs/MATHLIB_DRAFT_PR_TEMPLATE.md
10
+ upstream_lane_doc: /path/to/sunflower-coda/repo/docs/UPSTREAM_PR_LANE.md
11
+ upstream_plan: /path/to/sunflower-coda/repo/analysis/UPSTREAM_PR_PLAN.yaml
12
+ default_pr_body_file: /path/to/sunflower-coda/repo/analysis/MATHLIB_DRAFT_PR_BODY.md
13
+ mathlib_repo_root: /path/to/mathlib4
14
+
15
+ runtime:
16
+ shell: /bin/bash
17
+ default_timeout_sec: 1200
18
+ artifacts_root: orp/artifacts
19
+
20
+ packet:
21
+ default_kind: pr
22
+ output_dir: orp/packets
23
+ write_markdown: true
24
+ deterministic_mode: true
25
+
26
+ lifecycle:
27
+ claim_status_map:
28
+ Draft: draft
29
+ In review: ready
30
+ Verified: reviewed
31
+ Blocked: blocked
32
+ Retracted: retracted
33
+ atom_status_map:
34
+ todo: draft
35
+ in_progress: ready
36
+ blocked: blocked
37
+ done: reviewed
38
+ claim_level_values:
39
+ - Exact
40
+ - Verified
41
+ - Heuristic
42
+ - Conjecture
43
+
44
+ gates:
45
+ - id: checklist_presence
46
+ description: Verify required mathlib submission and lane docs are present.
47
+ phase: scope_lock
48
+ command: >
49
+ test -f docs/MATHLIB_SUBMISSION_CHECKLIST.md &&
50
+ test -f docs/MATHLIB_DRAFT_PR_TEMPLATE.md &&
51
+ test -f docs/MATHLIB_ISSUE_VIABILITY_GATE.md &&
52
+ test -f docs/UPSTREAM_PR_LANE.md
53
+ working_dir: /path/to/sunflower-coda/repo
54
+ pass:
55
+ exit_codes: [0]
56
+ evidence:
57
+ include_stdout: false
58
+ include_stderr: true
59
+ paths:
60
+ - /path/to/sunflower-coda/repo/docs/MATHLIB_SUBMISSION_CHECKLIST.md
61
+ - /path/to/sunflower-coda/repo/docs/MATHLIB_DRAFT_PR_TEMPLATE.md
62
+ - /path/to/sunflower-coda/repo/docs/MATHLIB_ISSUE_VIABILITY_GATE.md
63
+ - /path/to/sunflower-coda/repo/docs/UPSTREAM_PR_LANE.md
64
+ on_fail: stop
65
+
66
+ - id: queue_policy_guard
67
+ description: Enforce anti-spam queue policy defaults before any PR creation step.
68
+ phase: scope_lock
69
+ command: python3 scripts/upstream-pr-plan.py summary
70
+ working_dir: /path/to/sunflower-coda/repo
71
+ pass:
72
+ exit_codes: [0]
73
+ stdout_must_contain:
74
+ - policy.submission_mode=hold
75
+ - policy.max_prs_per_session=2
76
+ - policy.require_explicit_approval=True
77
+ evidence:
78
+ include_stdout: true
79
+ include_stderr: true
80
+ paths:
81
+ - /path/to/sunflower-coda/repo/analysis/UPSTREAM_PR_PLAN.yaml
82
+ on_fail: mark_blocked
83
+
84
+ - id: lane_checklist_snapshot
85
+ description: Print required contributor/style/queue checklist snapshot.
86
+ phase: scope_lock
87
+ command: bash scripts/upstream-pr-lane.sh checklist
88
+ working_dir: /path/to/sunflower-coda/repo
89
+ pass:
90
+ exit_codes: [0]
91
+ stdout_must_contain:
92
+ - "== Mathlib Submission Checklist =="
93
+ - checklist_doc=
94
+ evidence:
95
+ include_stdout: true
96
+ include_stderr: true
97
+ on_fail: continue
98
+
99
+ - id: issue_viability_decision
100
+ description: Require PASS from issue viability gate before implementation/drafting.
101
+ phase: structure_kernel
102
+ command: >
103
+ python3 scripts/mathlib-issue-viability-gate.py
104
+ --repo leanprover-community/mathlib4
105
+ --issue "${ORP_ISSUE_NUMBER:?set ORP_ISSUE_NUMBER}"
106
+ --author SproutSeeds
107
+ working_dir: /path/to/sunflower-coda/repo
108
+ pass:
109
+ exit_codes: [0]
110
+ stdout_must_contain:
111
+ - decision=PASS
112
+ evidence:
113
+ include_stdout: true
114
+ include_stderr: true
115
+ on_fail: mark_blocked
116
+
117
+ - id: naturality_snippet
118
+ description: Capture natural-generality check text before PR packaging work.
119
+ phase: structure_kernel
120
+ command: >
121
+ bash scripts/mathlib-naturality-snippet.sh
122
+ --issue "${ORP_ISSUE_NUMBER:?set ORP_ISSUE_NUMBER}"
123
+ --branch "${ORP_BRANCH_NAME:-issue-${ORP_ISSUE_NUMBER:?set ORP_ISSUE_NUMBER}}"
124
+ --module "${ORP_NATURALITY_MODULE:?set ORP_NATURALITY_MODULE}"
125
+ working_dir: /path/to/sunflower-coda/repo
126
+ pass:
127
+ exit_codes: [0]
128
+ stdout_must_contain:
129
+ - "Natural Generality Check"
130
+ evidence:
131
+ include_stdout: true
132
+ include_stderr: true
133
+ on_fail: mark_blocked
134
+
135
+ - id: local_issue_gate_core
136
+ description: Run local build/lint gate while keeping viability/tighten as explicit atomic steps.
137
+ phase: interface_lift
138
+ command: >
139
+ bash scripts/mathlib-issue-local-gate.sh
140
+ --repo /path/to/mathlib4
141
+ --issue "${ORP_ISSUE_NUMBER:?set ORP_ISSUE_NUMBER}"
142
+ --skip-viability
143
+ --skip-tighten-fine-tooth
144
+ working_dir: /path/to/sunflower-coda/repo
145
+ timeout_sec: 1200
146
+ pass:
147
+ exit_codes: [0]
148
+ stdout_must_contain:
149
+ - gate=PASS
150
+ - marker_file=
151
+ evidence:
152
+ include_stdout: true
153
+ include_stderr: true
154
+ on_fail: stop
155
+
156
+ - id: tighten_fine_tooth
157
+ description: Run final tighten/fine-tooth gate for no-sorry/no-conflict/no-duplicate checks.
158
+ phase: verification
159
+ command: >
160
+ bash scripts/mathlib-tighten-fine-tooth-gate.sh
161
+ --repo /path/to/mathlib4
162
+ --issue "${ORP_ISSUE_NUMBER:?set ORP_ISSUE_NUMBER}"
163
+ --author SproutSeeds
164
+ working_dir: /path/to/sunflower-coda/repo
165
+ pass:
166
+ exit_codes: [0]
167
+ stdout_must_contain:
168
+ - tighten_fine_tooth=PASS
169
+ evidence:
170
+ include_stdout: true
171
+ include_stderr: true
172
+ on_fail: stop
173
+
174
+ - id: ready_to_draft_freeze
175
+ description: Require micro-pass confirmations and freeze marker on the current HEAD.
176
+ phase: verification
177
+ command: >
178
+ bash scripts/mathlib-ready-to-draft-gate.sh
179
+ --repo /path/to/mathlib4
180
+ --issue "${ORP_ISSUE_NUMBER:?set ORP_ISSUE_NUMBER}"
181
+ --confirm-naming
182
+ --confirm-docstring-tone
183
+ --confirm-readability
184
+ --note "${ORP_READY_NOTE:-micro-pass complete: naming/docstring-tone/readability}"
185
+ working_dir: /path/to/sunflower-coda/repo
186
+ pass:
187
+ exit_codes: [0]
188
+ stdout_must_contain:
189
+ - ready_to_draft=PASS
190
+ - next=open/update draft PR only when explicit user go-ahead is given
191
+ evidence:
192
+ include_stdout: true
193
+ include_stderr: true
194
+ on_fail: stop
195
+
196
+ - id: pr_body_preflight
197
+ description: Enforce concise portable PR body with explicit intelligent-systems disclosure.
198
+ phase: verification
199
+ command: >
200
+ python3 scripts/mathlib-pr-body-preflight.py
201
+ --file "${ORP_PR_BODY_FILE:-analysis/MATHLIB_DRAFT_PR_BODY.md}"
202
+ --fix &&
203
+ python3 scripts/mathlib-pr-body-preflight.py
204
+ --file "${ORP_PR_BODY_FILE:-analysis/MATHLIB_DRAFT_PR_BODY.md}"
205
+ working_dir: /path/to/sunflower-coda/repo
206
+ pass:
207
+ exit_codes: [0]
208
+ stdout_must_contain:
209
+ - gate=PASS
210
+ - metrics:
211
+ evidence:
212
+ include_stdout: true
213
+ include_stderr: true
214
+ paths:
215
+ - /path/to/sunflower-coda/repo/analysis/MATHLIB_DRAFT_PR_BODY.md
216
+ on_fail: mark_blocked
217
+
218
+ profiles:
219
+ sunflower_mathlib_pre_open:
220
+ description: Pre-open governance profile (policy + viability + naturality checks).
221
+ mode: collaboration
222
+ packet_kind: pr
223
+ gate_ids:
224
+ - checklist_presence
225
+ - queue_policy_guard
226
+ - lane_checklist_snapshot
227
+ - issue_viability_decision
228
+ - naturality_snippet
229
+
230
+ sunflower_mathlib_draft_readiness:
231
+ description: Draft-readiness profile (local gate, tighten, freeze, PR-body hygiene).
232
+ mode: collaboration
233
+ packet_kind: pr
234
+ gate_ids:
235
+ - local_issue_gate_core
236
+ - tighten_fine_tooth
237
+ - ready_to_draft_freeze
238
+ - pr_body_preflight
239
+
240
+ sunflower_mathlib_full_flow:
241
+ description: End-to-end profile from pre-open policy checks to draft-readiness gates.
242
+ mode: collaboration
243
+ packet_kind: pr
244
+ gate_ids:
245
+ - checklist_presence
246
+ - queue_policy_guard
247
+ - lane_checklist_snapshot
248
+ - issue_viability_decision
249
+ - naturality_snippet
250
+ - local_issue_gate_core
251
+ - tighten_fine_tooth
252
+ - ready_to_draft_freeze
253
+ - pr_body_preflight
@@ -0,0 +1,123 @@
1
+ {
2
+ "schema_version": "1.0.0",
3
+ "packet_id": "pkt-problem857-T2.G3.A1-20260304T160656Z",
4
+ "kind": "problem_scope",
5
+ "created_at_utc": "2026-03-04T16:06:56Z",
6
+ "protocol_boundary": {
7
+ "process_only": true,
8
+ "evidence_paths": [
9
+ "sunflower_lean/SunflowerLean/Balance.lean",
10
+ "analysis/problem857_counting_gateboard.json",
11
+ "docs/PROBLEM857_COUNTING_OPS_BOARD.md",
12
+ "orchestrator/logs/run-20260304-1606/SPEC_CHECK.json"
13
+ ],
14
+ "note": "Packet is process metadata. Evidence remains in canonical artifact paths."
15
+ },
16
+ "repo": {
17
+ "root_path": "/path/to/repo",
18
+ "git": {
19
+ "remote": "origin",
20
+ "branch": "main",
21
+ "commit": "abc1234"
22
+ }
23
+ },
24
+ "run": {
25
+ "run_id": "run-20260304-1606",
26
+ "tool": {
27
+ "name": "orp",
28
+ "version": "0.1.0"
29
+ },
30
+ "deterministic_input_hash": "sha256:4f1f4f4f4f4f4f4f",
31
+ "started_at_utc": "2026-03-04T16:06:20Z",
32
+ "ended_at_utc": "2026-03-04T16:06:56Z",
33
+ "duration_ms": 36000
34
+ },
35
+ "lifecycle": {
36
+ "workflow_state": "reviewed",
37
+ "atom_status": "done",
38
+ "state_note": "Atomic closure proof step completed and board snapshot refreshed."
39
+ },
40
+ "atomic_context": {
41
+ "board_id": "problem857_master_atomic_ops_board",
42
+ "problem_id": "857",
43
+ "ticket_id": "T2",
44
+ "gate_id": "T2.G3",
45
+ "atom_id": "T2.G3.A1",
46
+ "dependencies": [
47
+ "T2.G2.A3"
48
+ ],
49
+ "ready_queue_size": 0,
50
+ "board_snapshot_path": "analysis/problem857_counting_gateboard.json",
51
+ "route_status": {
52
+ "counting_uniform": {
53
+ "done": 4,
54
+ "total": 4,
55
+ "strict_done": 4,
56
+ "strict_total": 4
57
+ },
58
+ "counting_mixed": {
59
+ "done": 6,
60
+ "total": 6,
61
+ "strict_done": 6,
62
+ "strict_total": 6
63
+ }
64
+ }
65
+ },
66
+ "gates": [
67
+ {
68
+ "gate_id": "board_refresh",
69
+ "phase": "scope_lock",
70
+ "command": "python3 scripts/problem857_ops_board.py refresh --write-md --sync-json",
71
+ "status": "pass",
72
+ "exit_code": 0,
73
+ "duration_ms": 510,
74
+ "stdout_path": "orp/artifacts/run-20260304-1606/board_refresh.stdout.log",
75
+ "stderr_path": "orp/artifacts/run-20260304-1606/board_refresh.stderr.log",
76
+ "evidence_paths": [
77
+ "analysis/problem857_counting_gateboard.json",
78
+ "docs/PROBLEM857_COUNTING_OPS_BOARD.md"
79
+ ]
80
+ },
81
+ {
82
+ "gate_id": "spec_faithfulness",
83
+ "phase": "quant_assembly",
84
+ "command": "python3 orchestrator/problem857_public_spec_check.py --run-id run-20260304-1606 --expect-starter-scaffold true",
85
+ "status": "pass",
86
+ "exit_code": 0,
87
+ "duration_ms": 190,
88
+ "stdout_path": "orp/artifacts/run-20260304-1606/spec_faithfulness.stdout.log",
89
+ "stderr_path": "orp/artifacts/run-20260304-1606/spec_faithfulness.stderr.log",
90
+ "evidence_paths": [
91
+ "orchestrator/logs/run-20260304-1606/SPEC_CHECK.json"
92
+ ]
93
+ },
94
+ {
95
+ "gate_id": "lean_build_balance",
96
+ "phase": "interface_lift",
97
+ "command": "lake build SunflowerLean.Balance",
98
+ "status": "pass",
99
+ "exit_code": 0,
100
+ "duration_ms": 27890,
101
+ "stdout_path": "orp/artifacts/run-20260304-1606/lean_build_balance.stdout.log",
102
+ "stderr_path": "orp/artifacts/run-20260304-1606/lean_build_balance.stderr.log",
103
+ "evidence_paths": [
104
+ "sunflower_lean/SunflowerLean/Balance.lean"
105
+ ]
106
+ }
107
+ ],
108
+ "summary": {
109
+ "overall_result": "PASS",
110
+ "gates_passed": 3,
111
+ "gates_failed": 0,
112
+ "gates_total": 3,
113
+ "note": "This packet captures one atomic proof pass, not a merge decision."
114
+ },
115
+ "artifacts": {
116
+ "packet_json_path": "orp/packets/pkt-problem857-T2.G3.A1-20260304T160656Z.json",
117
+ "packet_md_path": "orp/packets/pkt-problem857-T2.G3.A1-20260304T160656Z.md",
118
+ "artifact_root": "orp/artifacts/run-20260304-1606",
119
+ "extra_paths": [
120
+ "analysis/ALIGNMENT_LOG.md"
121
+ ]
122
+ }
123
+ }
@@ -0,0 +1,16 @@
1
+ # Example ORP Run Summaries
2
+
3
+ These files are example outputs from:
4
+
5
+ `./scripts/orp report summary`
6
+
7
+ They show the shape and intent of ORP run reports:
8
+
9
+ - fast pass/fail headline,
10
+ - gate-by-gate command/status/timing,
11
+ - evidence pointers (`stdout` and `stderr` logs),
12
+ - deterministic hash for reproducibility checks.
13
+
14
+ These are examples only; real runs are generated locally under:
15
+
16
+ `orp/artifacts/<run_id>/RUN_SUMMARY.md`
@@ -0,0 +1,37 @@
1
+ # ORP Run Summary `run-20260305-160246`
2
+
3
+ ## Headline
4
+
5
+ - overall_result: `PASS`
6
+ - profile: `sunflower_live_compare_20`
7
+ - gates: `3 passed / 0 failed / 3 total`
8
+ - duration_ms: `5817`
9
+ - started_at_utc: `2026-03-05T16:02:46Z`
10
+ - ended_at_utc: `2026-03-05T16:02:52Z`
11
+ - config_path: `/path/to/orp.sunflower-coda.live-compare.yml`
12
+
13
+ ## What This Report Shows
14
+
15
+ - Which gates ran, in what order, and with what command.
16
+ - Whether each gate passed or failed, with exit code and timing.
17
+ - Where to inspect raw evidence (`stdout` / `stderr`) for each gate.
18
+ - A deterministic input hash so teams can compare runs reliably.
19
+
20
+ ## Gate Results
21
+
22
+ | Gate | Status | Exit | Duration ms | Command |
23
+ |---|---:|---:|---:|---|
24
+ | `p20_board_show` | `pass` | 0 | 2108 | `python3 scripts/problem20_ops_board.py show` |
25
+ | `p20_board_ready` | `pass` | 0 | 65 | `python3 scripts/problem20_ops_board.py ready` |
26
+ | `p20_frontier` | `pass` | 0 | 3644 | `python3 scripts/frontier_status.py --problem 20` |
27
+
28
+ ## Evidence Pointers
29
+
30
+ - `p20_board_show`: stdout=`orp/artifacts/run-20260305-160246/p20_board_show.stdout.log` stderr=`orp/artifacts/run-20260305-160246/p20_board_show.stderr.log`
31
+ - `p20_board_ready`: stdout=`orp/artifacts/run-20260305-160246/p20_board_ready.stdout.log` stderr=`orp/artifacts/run-20260305-160246/p20_board_ready.stderr.log`
32
+ - `p20_frontier`: stdout=`orp/artifacts/run-20260305-160246/p20_frontier.stdout.log` stderr=`orp/artifacts/run-20260305-160246/p20_frontier.stderr.log`
33
+
34
+ ## Reproducibility
35
+
36
+ - deterministic_input_hash: `sha256:a05bdc913b54a402d49456d3285b36a9afcaecc96241de63bfa3042efc3d04b2`
37
+ - rerun with the same profile/config and compare this hash + gate outputs.
@@ -0,0 +1,37 @@
1
+ # ORP Run Summary `run-20260305-160246`
2
+
3
+ ## Headline
4
+
5
+ - overall_result: `PASS`
6
+ - profile: `sunflower_live_compare_367`
7
+ - gates: `3 passed / 0 failed / 3 total`
8
+ - duration_ms: `6250`
9
+ - started_at_utc: `2026-03-05T16:02:46Z`
10
+ - ended_at_utc: `2026-03-05T16:02:52Z`
11
+ - config_path: `/path/to/orp.sunflower-coda.live-compare.yml`
12
+
13
+ ## What This Report Shows
14
+
15
+ - Which gates ran, in what order, and with what command.
16
+ - Whether each gate passed or failed, with exit code and timing.
17
+ - Where to inspect raw evidence (`stdout` / `stderr`) for each gate.
18
+ - A deterministic input hash so teams can compare runs reliably.
19
+
20
+ ## Gate Results
21
+
22
+ | Gate | Status | Exit | Duration ms | Command |
23
+ |---|---:|---:|---:|---|
24
+ | `p367_board_show` | `pass` | 0 | 2682 | `python3 scripts/problem367_ops_board.py show` |
25
+ | `p367_board_ready` | `pass` | 0 | 649 | `python3 scripts/problem367_ops_board.py ready --allow-no-go` |
26
+ | `p367_frontier` | `pass` | 0 | 2919 | `python3 scripts/frontier_status.py --problem 367` |
27
+
28
+ ## Evidence Pointers
29
+
30
+ - `p367_board_show`: stdout=`orp/artifacts/run-20260305-160246/p367_board_show.stdout.log` stderr=`orp/artifacts/run-20260305-160246/p367_board_show.stderr.log`
31
+ - `p367_board_ready`: stdout=`orp/artifacts/run-20260305-160246/p367_board_ready.stdout.log` stderr=`orp/artifacts/run-20260305-160246/p367_board_ready.stderr.log`
32
+ - `p367_frontier`: stdout=`orp/artifacts/run-20260305-160246/p367_frontier.stdout.log` stderr=`orp/artifacts/run-20260305-160246/p367_frontier.stderr.log`
33
+
34
+ ## Reproducibility
35
+
36
+ - deterministic_input_hash: `sha256:f769bde4b052f7d401c866fd28abfb9d3c9626850d96830594418d45bf2b569a`
37
+ - rerun with the same profile/config and compare this hash + gate outputs.
@@ -0,0 +1,37 @@
1
+ # ORP Run Summary `run-20260305-160605`
2
+
3
+ ## Headline
4
+
5
+ - overall_result: `PASS`
6
+ - profile: `sunflower_live_compare_857`
7
+ - gates: `3 passed / 0 failed / 3 total`
8
+ - duration_ms: `4678`
9
+ - started_at_utc: `2026-03-05T16:06:05Z`
10
+ - ended_at_utc: `2026-03-05T16:06:09Z`
11
+ - config_path: `/path/to/orp.sunflower-coda.live-compare.yml`
12
+
13
+ ## What This Report Shows
14
+
15
+ - Which gates ran, in what order, and with what command.
16
+ - Whether each gate passed or failed, with exit code and timing.
17
+ - Where to inspect raw evidence (`stdout` / `stderr`) for each gate.
18
+ - A deterministic input hash so teams can compare runs reliably.
19
+
20
+ ## Gate Results
21
+
22
+ | Gate | Status | Exit | Duration ms | Command |
23
+ |---|---:|---:|---:|---|
24
+ | `p857_board_show` | `pass` | 0 | 1617 | `python3 scripts/problem857_ops_board.py show` |
25
+ | `p857_board_ready` | `pass` | 0 | 57 | `python3 scripts/problem857_ops_board.py ready` |
26
+ | `p857_frontier` | `pass` | 0 | 3004 | `python3 scripts/frontier_status.py --problem 857` |
27
+
28
+ ## Evidence Pointers
29
+
30
+ - `p857_board_show`: stdout=`orp/artifacts/run-20260305-160605/p857_board_show.stdout.log` stderr=`orp/artifacts/run-20260305-160605/p857_board_show.stderr.log`
31
+ - `p857_board_ready`: stdout=`orp/artifacts/run-20260305-160605/p857_board_ready.stdout.log` stderr=`orp/artifacts/run-20260305-160605/p857_board_ready.stderr.log`
32
+ - `p857_frontier`: stdout=`orp/artifacts/run-20260305-160605/p857_frontier.stdout.log` stderr=`orp/artifacts/run-20260305-160605/p857_frontier.stderr.log`
33
+
34
+ ## Reproducibility
35
+
36
+ - deterministic_input_hash: `sha256:d7ff4ca92c3abc93612c6cff9f080cef8b336f5f81aab0ca6125551e777a0c10`
37
+ - rerun with the same profile/config and compare this hash + gate outputs.
package/llms.txt ADDED
@@ -0,0 +1,58 @@
1
+ # ORP
2
+
3
+ ORP (Open Research Protocol) is a docs-first, local-first, agent-friendly protocol and CLI for research workflows.
4
+
5
+ ## Start Here
6
+
7
+ - `README.md` — high-level overview, install path, pack flow, and validated examples.
8
+ - `PROTOCOL.md` — process boundary and operating rules.
9
+ - `AGENT_INTEGRATION.md` — how to make ORP the default mode for an AI agent.
10
+ - `INSTALL.md` — adopt ORP in an existing repo or start fresh.
11
+ - `docs/AGENT_LOOP.md` — canonical ORP loop for agent-led workflows.
12
+
13
+ ## Fast Machine Discovery
14
+
15
+ - Run `orp about --json` for machine-readable tool metadata, artifact paths, schemas, supported commands, and bundled packs.
16
+ - Run `orp erdos sync --json` for machine-readable Erdos catalog sync results.
17
+ - Run `orp pack list --json` for machine-readable bundled pack inventory.
18
+ - Core runtime commands also support `--json`:
19
+ - `orp init --json`
20
+ - `orp gate run --profile <profile> --json`
21
+ - `orp packet emit --profile <profile> --json`
22
+ - `orp report summary --json`
23
+ - `orp pack install --pack-id <pack-id> --json`
24
+ - `orp pack fetch --source <git-url> --pack-id <pack-id> --install-target . --json`
25
+
26
+ ## Stable Artifact Paths
27
+
28
+ - `orp/state.json`
29
+ - `orp/artifacts/<run_id>/RUN.json`
30
+ - `orp/artifacts/<run_id>/RUN_SUMMARY.md`
31
+ - `orp/packets/<packet_id>.json`
32
+ - `orp/packets/<packet_id>.md`
33
+ - `RUN.json.epistemic_status` and packet `evidence_status` explicitly mark starter/stub/evidence boundaries.
34
+
35
+ ## Schemas
36
+
37
+ - `spec/v1/orp.config.schema.json`
38
+ - `spec/v1/packet.schema.json`
39
+ - `spec/v1/profile-pack.schema.json`
40
+
41
+ ## Key Commands
42
+
43
+ - `orp init`
44
+ - `orp gate run --profile <profile>`
45
+ - `orp packet emit --profile <profile>`
46
+ - `orp report summary`
47
+ - `orp erdos sync`
48
+ - `orp pack list`
49
+ - `orp pack install --pack-id erdos-open-problems`
50
+ - `orp pack fetch --source <git-url> --pack-id <pack-id> --install-target .`
51
+
52
+ ## Included Pack
53
+
54
+ - `packs/erdos-open-problems/` — public Erdos catalog sync plus starter flows for Problem 857, live compare, and governance.
55
+
56
+ ## Important Boundary
57
+
58
+ ORP files are process-only. They are not evidence. Evidence belongs in canonical artifact paths such as code, data, proofs, logs, and papers.
@@ -0,0 +1,109 @@
1
+ # Adversarial Lens
2
+
3
+ > *What survives its strongest attack deserves belief.*
4
+
5
+ The Adversarial Lens reframes inquiry by assuming **the system will be stressed**, misused, or pushed to its limits. Instead of asking whether something works in ideal conditions, it asks **where and how it breaks**.
6
+
7
+ This instrument is not cynical. It is protective.
8
+
9
+ ---
10
+
11
+ ## Purpose
12
+
13
+ Use the Adversarial Lens when:
14
+ - claims feel robust but untested at the edges,
15
+ - you want confidence rather than optimism,
16
+ - counterexamples may exist but are hidden,
17
+ - or failure modes matter more than average behavior.
18
+
19
+ ---
20
+
21
+ ## Forces
22
+
23
+ - **Inward force:** confidence, coherence, internal consistency.
24
+ - **Outward force:** attack, perturbation, worst-case pressure.
25
+
26
+ Too little adversity creates fragile belief.
27
+ Too much adversarial pressure destroys exploratory progress.
28
+
29
+ ---
30
+
31
+ ## Distance / Control Parameters
32
+
33
+ - strength of adversary
34
+ - size or scope of perturbation
35
+ - number of attack rounds
36
+ - allowed adaptivity of the adversary
37
+
38
+ This lens tunes *how hostile* the environment is.
39
+
40
+ ---
41
+
42
+ ## Stability Invariants
43
+
44
+ Quantities that should persist under healthy stress:
45
+
46
+ - correctness of core claims
47
+ - bounded error or damage
48
+ - graceful degradation
49
+ - recovery after failure
50
+
51
+ If these fail immediately, confidence was misplaced.
52
+
53
+ ---
54
+
55
+ ## Failure Signals
56
+
57
+ - existence of a single, simple counterexample
58
+ - cascading failures from small perturbations
59
+ - reliance on hidden assumptions
60
+ - collapse under adversarial sequencing
61
+
62
+ These are not embarrassments; they are information.
63
+
64
+ ---
65
+
66
+ ## Reframing Moves
67
+
68
+ - actively search for counterexamples
69
+ - assume the worst-case input
70
+ - flip quantifiers ("for all" vs "there exists")
71
+ - reverse assumptions one at a time
72
+
73
+ Change the question from:
74
+ > “Why does this work?”
75
+
76
+ to:
77
+ > “How could this fail?”
78
+
79
+ ---
80
+
81
+ ## Observation Test
82
+
83
+ A new observation under the Adversarial Lens:
84
+
85
+ - identifies a minimal counterexample
86
+ - proves robustness up to a quantified bound
87
+ - shows failure is localized, not systemic
88
+
89
+ If stress clarifies the boundary of truth, the lens is valid.
90
+
91
+ ---
92
+
93
+ ## Relation to Other Instruments
94
+
95
+ - **Orbit** asks whether a system can persist.
96
+ - **Compression** asks what is essential.
97
+ - **Adversarial** asks where belief must stop.
98
+
99
+ Together, they define a safe perimeter for truth.
100
+
101
+ ---
102
+
103
+ ## Closing
104
+
105
+ Adversarial thinking is not opposition.
106
+ It is care expressed through rigor.
107
+
108
+ *If a claim survives attack, it earns trust.*
109
+