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: {{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
|
package/packs/erdos-open-problems/profiles/sunflower-problem857-discovery-public-repo.yml.tmpl
ADDED
|
@@ -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`
|