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,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
|
+
|