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: {{TARGET_REPO_ROOT}}/docs/MATHLIB_SUBMISSION_CHECKLIST.md
8
+ issue_viability_doc: {{TARGET_REPO_ROOT}}/docs/MATHLIB_ISSUE_VIABILITY_GATE.md
9
+ draft_pr_template_doc: {{TARGET_REPO_ROOT}}/docs/MATHLIB_DRAFT_PR_TEMPLATE.md
10
+ upstream_lane_doc: {{TARGET_REPO_ROOT}}/docs/UPSTREAM_PR_LANE.md
11
+ upstream_plan: {{TARGET_REPO_ROOT}}/analysis/UPSTREAM_PR_PLAN.yaml
12
+ default_pr_body_file: {{TARGET_REPO_ROOT}}/{{DEFAULT_PR_BODY_FILE}}
13
+ mathlib_repo_root: {{MATHLIB_REPO_ROOT}}
14
+
15
+ runtime:
16
+ shell: /bin/bash
17
+ default_timeout_sec: {{ORP_TIMEOUT_SEC}}
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: {{TARGET_REPO_ROOT}}
54
+ pass:
55
+ exit_codes: [0]
56
+ evidence:
57
+ include_stdout: false
58
+ include_stderr: true
59
+ paths:
60
+ - {{TARGET_REPO_ROOT}}/docs/MATHLIB_SUBMISSION_CHECKLIST.md
61
+ - {{TARGET_REPO_ROOT}}/docs/MATHLIB_DRAFT_PR_TEMPLATE.md
62
+ - {{TARGET_REPO_ROOT}}/docs/MATHLIB_ISSUE_VIABILITY_GATE.md
63
+ - {{TARGET_REPO_ROOT}}/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: {{TARGET_REPO_ROOT}}
71
+ pass:
72
+ exit_codes: [0]
73
+ stdout_must_contain:
74
+ - policy.submission_mode={{UPSTREAM_SUBMISSION_MODE}}
75
+ - policy.max_prs_per_session={{MAX_PRS_PER_SESSION}}
76
+ - policy.require_explicit_approval={{REQUIRE_EXPLICIT_APPROVAL}}
77
+ evidence:
78
+ include_stdout: true
79
+ include_stderr: true
80
+ paths:
81
+ - {{TARGET_REPO_ROOT}}/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: {{TARGET_REPO_ROOT}}
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 {{MATHLIB_GITHUB_REPO}}
105
+ --issue "${ORP_ISSUE_NUMBER:?set ORP_ISSUE_NUMBER}"
106
+ --author {{MATHLIB_GITHUB_AUTHOR}}
107
+ working_dir: {{TARGET_REPO_ROOT}}
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: {{TARGET_REPO_ROOT}}
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 {{MATHLIB_REPO_ROOT}}
141
+ --issue "${ORP_ISSUE_NUMBER:?set ORP_ISSUE_NUMBER}"
142
+ --skip-viability
143
+ --skip-tighten-fine-tooth
144
+ working_dir: {{TARGET_REPO_ROOT}}
145
+ timeout_sec: {{ORP_TIMEOUT_SEC}}
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 {{MATHLIB_REPO_ROOT}}
162
+ --issue "${ORP_ISSUE_NUMBER:?set ORP_ISSUE_NUMBER}"
163
+ --author {{MATHLIB_GITHUB_AUTHOR}}
164
+ working_dir: {{TARGET_REPO_ROOT}}
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 {{MATHLIB_REPO_ROOT}}
180
+ --issue "${ORP_ISSUE_NUMBER:?set ORP_ISSUE_NUMBER}"
181
+ --confirm-naming
182
+ --confirm-docstring-tone
183
+ --confirm-readability
184
+ --note "${ORP_READY_NOTE:-{{READY_TO_DRAFT_NOTE}}}"
185
+ working_dir: {{TARGET_REPO_ROOT}}
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:-{{DEFAULT_PR_BODY_FILE}}}"
202
+ --fix &&
203
+ python3 scripts/mathlib-pr-body-preflight.py
204
+ --file "${ORP_PR_BODY_FILE:-{{DEFAULT_PR_BODY_FILE}}}"
205
+ working_dir: {{TARGET_REPO_ROOT}}
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
+ - {{TARGET_REPO_ROOT}}/{{DEFAULT_PR_BODY_FILE}}
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,152 @@
1
+ version: "1"
2
+
3
+ project:
4
+ name: sunflower-coda
5
+ repo_root: .
6
+ canonical_paths:
7
+ code: sunflower_lean/
8
+ analysis: analysis/
9
+ docs: docs/
10
+ selected_problem_json: {{TARGET_REPO_ROOT}}/analysis/erdos_problems/selected/erdos_problem.857.json
11
+ board_json: {{TARGET_REPO_ROOT}}/analysis/problem857_counting_gateboard.json
12
+ board_md: {{TARGET_REPO_ROOT}}/docs/PROBLEM857_COUNTING_OPS_BOARD.md
13
+ scope_config: {{TARGET_REPO_ROOT}}/orchestrator/v2/scopes/problem_857.yaml
14
+
15
+ runtime:
16
+ shell: /bin/bash
17
+ default_timeout_sec: {{ORP_TIMEOUT_SEC}}
18
+ artifacts_root: orp/artifacts
19
+
20
+ packet:
21
+ default_kind: problem_scope
22
+ output_dir: orp/packets
23
+ write_markdown: true
24
+ deterministic_mode: true
25
+
26
+ epistemic_status:
27
+ include_last_erdos_sync: true
28
+ notes:
29
+ - Public Problem 857 workflow is operating against a synced public sunflower-lean repo plus ORP-generated bridge files.
30
+ - board_refresh, board_ready_queue, and route_frontier reflect ORP's derived public integration view, not standalone mathematical evidence.
31
+ - spec_faithfulness validates the synced public Problem 857 snapshot against the installed scope and board.
32
+ - lean_build_balance verifies the current public Lean module builds successfully.
33
+
34
+ lifecycle:
35
+ claim_status_map:
36
+ Draft: draft
37
+ In review: ready
38
+ Verified: reviewed
39
+ Blocked: blocked
40
+ Retracted: retracted
41
+ atom_status_map:
42
+ todo: draft
43
+ in_progress: ready
44
+ blocked: blocked
45
+ done: reviewed
46
+ claim_level_values:
47
+ - Exact
48
+ - Verified
49
+ - Heuristic
50
+ - Conjecture
51
+
52
+ atomic_board:
53
+ enabled: true
54
+ board_path: {{TARGET_REPO_ROOT}}/analysis/problem857_counting_gateboard.json
55
+ refresh_command: python3 scripts/problem857_ops_board.py refresh --write-md --sync-json
56
+ ready_command: python3 scripts/problem857_ops_board.py ready
57
+ set_atom_command_template: python3 scripts/problem857_ops_board.py set-atom {atom_id} --status {status}
58
+
59
+ gates:
60
+ - id: board_refresh
61
+ description: Refresh board snapshot before reading ready/dependency state.
62
+ phase: scope_lock
63
+ command: python3 scripts/problem857_ops_board.py refresh --write-md --sync-json
64
+ working_dir: {{TARGET_REPO_ROOT}}
65
+ pass:
66
+ exit_codes: [0]
67
+ evidence:
68
+ include_stdout: true
69
+ include_stderr: false
70
+ status: process_only
71
+ note: Board snapshot is an ORP-derived view over the synced public sunflower-lean repo, not mathematical evidence.
72
+ paths:
73
+ - {{TARGET_REPO_ROOT}}/analysis/problem857_counting_gateboard.json
74
+ - {{TARGET_REPO_ROOT}}/docs/PROBLEM857_COUNTING_OPS_BOARD.md
75
+ on_fail: stop
76
+
77
+ - id: board_ready_queue
78
+ description: Confirm atomic ready queue can be computed from dependency graph.
79
+ phase: structure_kernel
80
+ command: python3 scripts/problem857_ops_board.py ready
81
+ working_dir: {{TARGET_REPO_ROOT}}
82
+ pass:
83
+ exit_codes: [0]
84
+ stdout_must_contain:
85
+ - ready_atoms=
86
+ evidence:
87
+ include_stdout: true
88
+ include_stderr: true
89
+ status: process_only
90
+ note: Ready queue is derived from the ORP public bridge board, not mathematical evidence.
91
+ on_fail: mark_blocked
92
+
93
+ - id: spec_faithfulness
94
+ description: Validate public Problem 857 scope consistency against synced Erdos data.
95
+ phase: quant_assembly
96
+ command: python3 orchestrator/problem857_public_spec_check.py --run-id {run_id} --problem-id 857 --scope-mode public_repo --expect-starter-scaffold false --selected-problem analysis/erdos_problems/selected/erdos_problem.857.json --scope orchestrator/v2/scopes/problem_857.yaml --board analysis/problem857_counting_gateboard.json
97
+ working_dir: {{TARGET_REPO_ROOT}}
98
+ pass:
99
+ exit_codes: [0]
100
+ stdout_must_contain:
101
+ - spec_check=PASS
102
+ evidence:
103
+ include_stdout: true
104
+ include_stderr: true
105
+ status: evidence
106
+ note: Uses the synced public Problem 857 payload as evidence input and validates that scope plus board target the same problem.
107
+ paths:
108
+ - {{TARGET_REPO_ROOT}}/analysis/erdos_problems/selected/erdos_problem.857.json
109
+ on_fail: mark_blocked
110
+
111
+ - id: lean_build_balance
112
+ description: Verify deterministic Lean build for Balance module.
113
+ phase: interface_lift
114
+ command: {{PROBLEM857_LEAN_BUILD_COMMAND}}
115
+ working_dir: {{TARGET_REPO_ROOT}}/sunflower_lean
116
+ timeout_sec: {{ORP_TIMEOUT_SEC}}
117
+ pass:
118
+ exit_codes: [0]
119
+ evidence:
120
+ include_stdout: true
121
+ include_stderr: true
122
+ status: evidence
123
+ note: Lean build gate verifies the current public workspace module builds successfully.
124
+ on_fail: stop
125
+
126
+ - id: route_frontier
127
+ description: Verify strict/loose route status visibility for problem scope.
128
+ phase: verification
129
+ command: python3 scripts/frontier_status.py --problem 857
130
+ working_dir: {{TARGET_REPO_ROOT}}
131
+ pass:
132
+ exit_codes: [0]
133
+ stdout_must_contain:
134
+ - "== Strict Routes (857) =="
135
+ evidence:
136
+ include_stdout: true
137
+ include_stderr: true
138
+ status: process_only
139
+ note: Route frontier summarizes ORP's public module inventory view; underlying Lean files remain the evidence source.
140
+ on_fail: mark_blocked
141
+
142
+ profiles:
143
+ sunflower_problem857_discovery:
144
+ description: Atomic problem-scope discovery loop for Problem 857.
145
+ mode: discovery
146
+ packet_kind: problem_scope
147
+ gate_ids:
148
+ - board_refresh
149
+ - board_ready_queue
150
+ - spec_faithfulness
151
+ - lean_build_balance
152
+ - route_frontier
@@ -0,0 +1,154 @@
1
+ version: "1"
2
+
3
+ project:
4
+ name: sunflower-coda
5
+ repo_root: .
6
+ canonical_paths:
7
+ code: sunflower_lean/
8
+ analysis: analysis/
9
+ docs: docs/
10
+ selected_problem_json: {{TARGET_REPO_ROOT}}/analysis/erdos_problems/selected/erdos_problem.857.json
11
+ board_json: {{TARGET_REPO_ROOT}}/analysis/problem857_counting_gateboard.json
12
+ board_md: {{TARGET_REPO_ROOT}}/docs/PROBLEM857_COUNTING_OPS_BOARD.md
13
+ scope_config: {{TARGET_REPO_ROOT}}/orchestrator/v2/scopes/problem_857.yaml
14
+
15
+ runtime:
16
+ shell: /bin/bash
17
+ default_timeout_sec: {{ORP_TIMEOUT_SEC}}
18
+ artifacts_root: orp/artifacts
19
+
20
+ packet:
21
+ default_kind: problem_scope
22
+ output_dir: orp/packets
23
+ write_markdown: true
24
+ deterministic_mode: true
25
+
26
+ epistemic_status:
27
+ overall: starter_public_scaffold
28
+ starter_scaffold: true
29
+ include_last_erdos_sync: true
30
+ notes:
31
+ - Public Problem 857 workflow is a starter discovery lane, not a proof-complete pipeline.
32
+ - board_refresh, board_ready_queue, and route_frontier operate on starter scaffold state.
33
+ - spec_faithfulness validates the synced public Problem 857 snapshot against the installed scope and starter board.
34
+ - lean_build_balance remains a starter stub until real Lean build integration replaces it.
35
+
36
+ lifecycle:
37
+ claim_status_map:
38
+ Draft: draft
39
+ In review: ready
40
+ Verified: reviewed
41
+ Blocked: blocked
42
+ Retracted: retracted
43
+ atom_status_map:
44
+ todo: draft
45
+ in_progress: ready
46
+ blocked: blocked
47
+ done: reviewed
48
+ claim_level_values:
49
+ - Exact
50
+ - Verified
51
+ - Heuristic
52
+ - Conjecture
53
+
54
+ atomic_board:
55
+ enabled: true
56
+ board_path: {{TARGET_REPO_ROOT}}/analysis/problem857_counting_gateboard.json
57
+ refresh_command: python3 scripts/problem857_ops_board.py refresh --write-md --sync-json
58
+ ready_command: python3 scripts/problem857_ops_board.py ready
59
+ set_atom_command_template: python3 scripts/problem857_ops_board.py set-atom {atom_id} --status {status}
60
+
61
+ gates:
62
+ - id: board_refresh
63
+ description: Refresh board snapshot before reading ready/dependency state.
64
+ phase: scope_lock
65
+ command: python3 scripts/problem857_ops_board.py refresh --write-md --sync-json
66
+ working_dir: {{TARGET_REPO_ROOT}}
67
+ pass:
68
+ exit_codes: [0]
69
+ evidence:
70
+ include_stdout: true
71
+ include_stderr: false
72
+ status: starter_scaffold
73
+ note: Starter board snapshot generated by ORP pack install.
74
+ paths:
75
+ - {{TARGET_REPO_ROOT}}/analysis/problem857_counting_gateboard.json
76
+ - {{TARGET_REPO_ROOT}}/docs/PROBLEM857_COUNTING_OPS_BOARD.md
77
+ on_fail: stop
78
+
79
+ - id: board_ready_queue
80
+ description: Confirm atomic ready queue can be computed from dependency graph.
81
+ phase: structure_kernel
82
+ command: python3 scripts/problem857_ops_board.py ready
83
+ working_dir: {{TARGET_REPO_ROOT}}
84
+ pass:
85
+ exit_codes: [0]
86
+ stdout_must_contain:
87
+ - ready_atoms=
88
+ evidence:
89
+ include_stdout: true
90
+ include_stderr: true
91
+ status: starter_scaffold
92
+ note: Ready queue is computed from starter board state, not mathematical evidence.
93
+ on_fail: mark_blocked
94
+
95
+ - id: spec_faithfulness
96
+ description: Validate public Problem 857 scope consistency against synced Erdos data.
97
+ phase: quant_assembly
98
+ command: python3 orchestrator/problem857_public_spec_check.py --run-id {run_id} --problem-id 857 --scope-mode starter --expect-starter-scaffold true --selected-problem analysis/erdos_problems/selected/erdos_problem.857.json --scope orchestrator/v2/scopes/problem_857.yaml --board analysis/problem857_counting_gateboard.json
99
+ working_dir: {{TARGET_REPO_ROOT}}
100
+ pass:
101
+ exit_codes: [0]
102
+ stdout_must_contain:
103
+ - spec_check=PASS
104
+ evidence:
105
+ include_stdout: true
106
+ include_stderr: true
107
+ status: evidence
108
+ note: Uses the synced public Problem 857 payload as evidence input and validates that scope plus starter board target the same problem.
109
+ paths:
110
+ - {{TARGET_REPO_ROOT}}/analysis/erdos_problems/selected/erdos_problem.857.json
111
+ on_fail: mark_blocked
112
+
113
+ - id: lean_build_balance
114
+ description: Verify deterministic Lean build for Balance module.
115
+ phase: interface_lift
116
+ command: {{PROBLEM857_LEAN_BUILD_COMMAND}}
117
+ working_dir: {{TARGET_REPO_ROOT}}/sunflower_lean
118
+ timeout_sec: {{ORP_TIMEOUT_SEC}}
119
+ pass:
120
+ exit_codes: [0]
121
+ evidence:
122
+ include_stdout: true
123
+ include_stderr: true
124
+ status: starter_stub
125
+ note: Lean build gate is a starter stub until real Lean build integration replaces it.
126
+ on_fail: stop
127
+
128
+ - id: route_frontier
129
+ description: Verify strict/loose route status visibility for problem scope.
130
+ phase: verification
131
+ command: python3 scripts/frontier_status.py --problem 857
132
+ working_dir: {{TARGET_REPO_ROOT}}
133
+ pass:
134
+ exit_codes: [0]
135
+ stdout_must_contain:
136
+ - "== Strict Routes (857) =="
137
+ evidence:
138
+ include_stdout: true
139
+ include_stderr: true
140
+ status: starter_scaffold
141
+ note: Route frontier output reflects starter board counters and scaffolding.
142
+ on_fail: mark_blocked
143
+
144
+ profiles:
145
+ sunflower_problem857_discovery:
146
+ description: Atomic problem-scope discovery loop for Problem 857.
147
+ mode: discovery
148
+ packet_kind: problem_scope
149
+ gate_ids:
150
+ - board_refresh
151
+ - board_ready_queue
152
+ - spec_faithfulness
153
+ - lean_build_balance
154
+ - route_frontier
@@ -0,0 +1,116 @@
1
+ # External PR Governance Pack
2
+
3
+ Generic ORP pack for local-first external OSS contribution workflows.
4
+
5
+ This pack is intentionally adapter-oriented:
6
+
7
+ - ORP core stays generic.
8
+ - Repo-specific commands and etiquette live in adapters or rendered config variables.
9
+
10
+ ## Purpose
11
+
12
+ Standardize the lifecycle for external contributions:
13
+
14
+ 1. watch and select,
15
+ 2. viability and coordination,
16
+ 3. local verification,
17
+ 4. ready-to-draft freeze,
18
+ 5. draft PR lifecycle,
19
+ 6. ready-for-review promotion,
20
+ 7. maintainer-feedback hardening.
21
+
22
+ ## Included templates
23
+
24
+ - `oss_pr_governance`
25
+ - generic watch/select, pre-open, local-readiness, draft-transition, and draft-lifecycle profiles
26
+ - `oss_feedback_hardening`
27
+ - generic feedback-to-guard hardening profile
28
+
29
+ ## Included adapters
30
+
31
+ - `adapters/mathlib/`
32
+ - reference adapter for the highest-rigor current implementation
33
+ - `adapters/formal-conjectures/`
34
+ - first non-mathlib adapter target
35
+
36
+ ## Design rule
37
+
38
+ Use this pack for the generic contract.
39
+
40
+ If a stronger repo-specific adapter already exists, treat that adapter as the source of truth for:
41
+
42
+ - exact commands,
43
+ - exact pass tokens,
44
+ - exact PR-body conventions,
45
+ - exact branch/worktree conventions,
46
+ - exact maintainer etiquette overlays.
47
+
48
+ ## Install Through ORP
49
+
50
+ Install the generic governance configs into a target repo:
51
+
52
+ ```bash
53
+ orp pack install --pack-id external-pr-governance
54
+ ```
55
+
56
+ That renders:
57
+
58
+ - `orp.external-pr-governance.yml`
59
+ - `orp.external-pr-feedback-hardening.yml`
60
+ - `orp.external-pr.pack-install-report.md`
61
+
62
+ The rendered configs are intentionally install-and-adapt, not install-and-go:
63
+
64
+ - repo metadata defaults to placeholders
65
+ - command hooks default to explicit failing placeholders
66
+ - bootstrap creates `analysis/PR_DRAFT_BODY.md` so the PR-body lane has a canonical starting point
67
+
68
+ Replace the placeholder commands with adapter-specific commands before running meaningful governance profiles.
69
+
70
+ ## Render examples
71
+
72
+ List templates:
73
+
74
+ ```bash
75
+ python3 scripts/orp-pack-render.py --pack packs/external-pr-governance --list
76
+ ```
77
+
78
+ Render generic governance config:
79
+
80
+ ```bash
81
+ python3 scripts/orp-pack-render.py \
82
+ --pack packs/external-pr-governance \
83
+ --template oss_pr_governance \
84
+ --var TARGET_REPO_ROOT=/path/to/working/repo \
85
+ --var TARGET_GITHUB_REPO=owner/repo \
86
+ --var TARGET_GITHUB_AUTHOR=YourLogin \
87
+ --var WATCH_SELECT_COMMAND="printf 'selection=PASS\n'" \
88
+ --var VIABILITY_COMMAND="printf 'decision=PASS\n'" \
89
+ --var OVERLAP_COMMAND="printf 'overlap=PASS\n'" \
90
+ --var LOCAL_GATE_COMMAND="printf 'gate=PASS\n'" \
91
+ --var READY_TO_DRAFT_COMMAND="printf 'ready_to_draft=PASS\n'" \
92
+ --var PR_BODY_PREFLIGHT_COMMAND="printf 'gate=PASS\n'" \
93
+ --var DRAFT_PR_TRANSITION_COMMAND="printf 'draft_pr=PASS\n'" \
94
+ --var DRAFT_CI_COMMAND="printf 'draft_ci=PASS\n'" \
95
+ --var READY_FOR_REVIEW_COMMAND="printf 'ready_for_review=PASS\n'" \
96
+ --out /path/to/working/repo/orp.external-pr-governance.yml
97
+ ```
98
+
99
+ Render feedback-hardening config:
100
+
101
+ ```bash
102
+ python3 scripts/orp-pack-render.py \
103
+ --pack packs/external-pr-governance \
104
+ --template oss_feedback_hardening \
105
+ --var TARGET_REPO_ROOT=/path/to/working/repo \
106
+ --var FEEDBACK_RECORD_COMMAND="printf 'feedback_recorded=PASS\n'" \
107
+ --var GUARD_VALIDATION_COMMAND="printf 'guard_validation=PASS\n'" \
108
+ --var DOC_SYNC_COMMAND="printf 'docs_sync=PASS\n'" \
109
+ --out /path/to/working/repo/orp.external-pr-feedback-hardening.yml
110
+ ```
111
+
112
+ ## Recommended companion docs
113
+
114
+ - `docs/EXTERNAL_CONTRIBUTION_GOVERNANCE.md`
115
+ - `docs/OSS_CONTRIBUTION_AGENT_LOOP.md`
116
+ - `docs/SUNFLOWER_CODA_PR_GOVERNANCE_MAPPING.md`