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,35 @@
1
+ # formal-conjectures Adapter Notes
2
+
3
+ This is the first non-mathlib adapter target for the generic `external-pr-governance` pack.
4
+
5
+ ## Current source of truth
6
+
7
+ - `docs/EXTERNAL_CONTRIBUTION_GOVERNANCE.md`
8
+ - In the live `sunflower-coda` host repo, the watch-board artifacts for:
9
+ - `analysis/OSS_ISSUE_WATCHLIST.json`
10
+ - `analysis/OSS_ISSUE_WATCH_STATUS.md`
11
+
12
+ Recent live examples in the watch board:
13
+
14
+ - `google-deepmind/formal-conjectures` PR `#2770`
15
+ - `google-deepmind/formal-conjectures` PR `#2771`
16
+
17
+ ## Expected adapter responsibilities
18
+
19
+ - watch and review tracking
20
+ - local Lean build/typecheck before PR update
21
+ - issue/PR linkage correctness (`Closes #...` when appropriate)
22
+ - concise portable PR body/comment hygiene
23
+ - draft CI watch if draft mode is used
24
+ - ready-for-review decision gate
25
+ - maintainer-feedback hardening
26
+
27
+ ## What is not standardized yet
28
+
29
+ Compared with mathlib, this adapter still needs:
30
+
31
+ - a dedicated local-first gate script,
32
+ - a dedicated ready-to-draft freeze gate,
33
+ - a dedicated PR-body preflight gate.
34
+
35
+ That is the main standardization gap this pack is meant to close.
@@ -0,0 +1,37 @@
1
+ # Mathlib Adapter Notes
2
+
3
+ This adapter should be treated as the current reference implementation for the generic
4
+ `external-pr-governance` pack.
5
+
6
+ ## Current source of truth
7
+
8
+ - `docs/EXTERNAL_CONTRIBUTION_GOVERNANCE.md`
9
+ - `docs/SUNFLOWER_CODA_PR_GOVERNANCE_MAPPING.md`
10
+ - `packs/erdos-open-problems/profiles/sunflower-mathlib-pr-governance.yml.tmpl`
11
+ - In the live `sunflower-coda` host repo, the matching docs/scripts for:
12
+ - `MATHLIB_SUBMISSION_CHECKLIST.md`
13
+ - `mathlib-issue-local-gate.sh`
14
+ - `mathlib-ready-to-draft-gate.sh`
15
+ - `mathlib-pr-body-preflight.py`
16
+
17
+ ## Adapter responsibilities
18
+
19
+ - issue viability decision
20
+ - overlap precheck
21
+ - local issue gate
22
+ - tighten/fine-tooth gate
23
+ - ready-to-draft freeze
24
+ - PR body preflight
25
+ - draft CI watch
26
+ - ready-for-review promotion
27
+ - maintainer-feedback hardening
28
+
29
+ ## Near-term recommendation
30
+
31
+ Do not replace the existing `sunflower-mathlib-pr-governance` template yet.
32
+
33
+ Instead:
34
+
35
+ 1. use it as the strong adapter,
36
+ 2. keep `external-pr-governance` as the generic contract layer,
37
+ 3. converge later if the generic pack becomes expressive enough.
@@ -0,0 +1,146 @@
1
+ schema_version: "1.0.0"
2
+ pack_id: external-pr-governance
3
+ name: External PR Governance Pack
4
+ version: "0.1.0"
5
+ description: >
6
+ Generic ORP profile templates for local-first external OSS contribution
7
+ workflows, including viability, coordination, local readiness, draft
8
+ lifecycle, and maintainer-feedback hardening.
9
+ orp_version_min: "0.1.0"
10
+
11
+ variables:
12
+ TARGET_REPO_ROOT:
13
+ description: Absolute path to the working repo that owns the contribution workflow.
14
+ required: true
15
+ TARGET_GITHUB_REPO:
16
+ description: GitHub repo receiving the contribution, for example leanprover-community/mathlib4.
17
+ required: false
18
+ default: "owner/repo"
19
+ TARGET_GITHUB_AUTHOR:
20
+ description: GitHub login used for coordination and overlap checks.
21
+ required: false
22
+ default: "your-login"
23
+ ORP_TIMEOUT_SEC:
24
+ description: Default gate timeout in seconds.
25
+ required: false
26
+ default: "1200"
27
+ DEFAULT_PR_BODY_FILE:
28
+ description: Default PR body file path relative to TARGET_REPO_ROOT.
29
+ required: false
30
+ default: "analysis/PR_DRAFT_BODY.md"
31
+ WATCH_SELECT_COMMAND:
32
+ description: Command that selects a contribution target and records why it is worth pursuing.
33
+ required: false
34
+ default: "printf 'configure WATCH_SELECT_COMMAND\\n' >&2; exit 2"
35
+ WATCH_SELECT_PASS_TOKEN:
36
+ description: Stdout token indicating the watch/select gate passed.
37
+ required: false
38
+ default: "selection=PASS"
39
+ VIABILITY_COMMAND:
40
+ description: Command that decides whether starting work is etiquette-safe.
41
+ required: false
42
+ default: "printf 'configure VIABILITY_COMMAND\\n' >&2; exit 2"
43
+ VIABILITY_PASS_TOKEN:
44
+ description: Stdout token indicating the viability gate passed.
45
+ required: false
46
+ default: "decision=PASS"
47
+ OVERLAP_COMMAND:
48
+ description: Command that checks external overlap or confirms coordination is clear.
49
+ required: false
50
+ default: "printf 'configure OVERLAP_COMMAND\\n' >&2; exit 2"
51
+ OVERLAP_PASS_TOKEN:
52
+ description: Stdout token indicating the overlap gate passed.
53
+ required: false
54
+ default: "overlap=PASS"
55
+ LOCAL_GATE_COMMAND:
56
+ description: Command that performs the local-first verification gate.
57
+ required: false
58
+ default: "printf 'configure LOCAL_GATE_COMMAND\\n' >&2; exit 2"
59
+ LOCAL_GATE_PASS_TOKEN:
60
+ description: Stdout token indicating the local gate passed.
61
+ required: false
62
+ default: "gate=PASS"
63
+ READY_TO_DRAFT_COMMAND:
64
+ description: Command that freezes the branch as ready to open or update a draft PR on the same HEAD.
65
+ required: false
66
+ default: "printf 'configure READY_TO_DRAFT_COMMAND\\n' >&2; exit 2"
67
+ READY_TO_DRAFT_PASS_TOKEN:
68
+ description: Stdout token indicating the ready-to-draft gate passed.
69
+ required: false
70
+ default: "ready_to_draft=PASS"
71
+ PR_BODY_PREFLIGHT_COMMAND:
72
+ description: Command that validates portable public PR text.
73
+ required: false
74
+ default: "printf 'configure PR_BODY_PREFLIGHT_COMMAND\\n' >&2; exit 2"
75
+ PR_BODY_PASS_TOKEN:
76
+ description: Stdout token indicating PR body preflight passed.
77
+ required: false
78
+ default: "gate=PASS"
79
+ DRAFT_PR_TRANSITION_COMMAND:
80
+ description: Command that opens or updates the draft PR and refuses if ready markers no longer match the current HEAD.
81
+ required: false
82
+ default: "printf 'configure DRAFT_PR_TRANSITION_COMMAND\\n' >&2; exit 2"
83
+ DRAFT_PR_TRANSITION_PASS_TOKEN:
84
+ description: Stdout token indicating the draft PR open/update transition passed.
85
+ required: false
86
+ default: "draft_pr=PASS"
87
+ DRAFT_CI_COMMAND:
88
+ description: Command that checks draft CI or draft lifecycle readiness.
89
+ required: false
90
+ default: "printf 'configure DRAFT_CI_COMMAND\\n' >&2; exit 2"
91
+ DRAFT_CI_PASS_TOKEN:
92
+ description: Stdout token indicating draft CI is green or otherwise acceptable.
93
+ required: false
94
+ default: "draft_ci=PASS"
95
+ READY_FOR_REVIEW_COMMAND:
96
+ description: Command that decides whether the PR can be promoted from draft to ready.
97
+ required: false
98
+ default: "printf 'configure READY_FOR_REVIEW_COMMAND\\n' >&2; exit 2"
99
+ READY_FOR_REVIEW_PASS_TOKEN:
100
+ description: Stdout token indicating ready-for-review conditions are satisfied.
101
+ required: false
102
+ default: "ready_for_review=PASS"
103
+ FEEDBACK_RECORD_COMMAND:
104
+ description: Command that records what maintainer feedback slipped and why.
105
+ required: false
106
+ default: "printf 'configure FEEDBACK_RECORD_COMMAND\\n' >&2; exit 2"
107
+ FEEDBACK_RECORD_PASS_TOKEN:
108
+ description: Stdout token indicating maintainer-feedback recording passed.
109
+ required: false
110
+ default: "feedback_recorded=PASS"
111
+ GUARD_VALIDATION_COMMAND:
112
+ description: Command that validates the new or updated guard with PASS and FAIL coverage.
113
+ required: false
114
+ default: "printf 'configure GUARD_VALIDATION_COMMAND\\n' >&2; exit 2"
115
+ GUARD_VALIDATION_PASS_TOKEN:
116
+ description: Stdout token indicating guard validation passed.
117
+ required: false
118
+ default: "guard_validation=PASS"
119
+ DOC_SYNC_COMMAND:
120
+ description: Command that confirms docs, templates, and agent instructions were updated with the guard.
121
+ required: false
122
+ default: "printf 'configure DOC_SYNC_COMMAND\\n' >&2; exit 2"
123
+ DOC_SYNC_PASS_TOKEN:
124
+ description: Stdout token indicating governance docs were synced.
125
+ required: false
126
+ default: "docs_sync=PASS"
127
+
128
+ templates:
129
+ oss_pr_governance:
130
+ path: profiles/oss-pr-governance.yml.tmpl
131
+ description: Generic external contribution governance profiles (watch/select, pre-open, local-readiness, draft transition, draft lifecycle, full flow).
132
+ output_hint: orp.external-pr-governance.yml
133
+ default_profiles:
134
+ - external_watch_select
135
+ - external_pre_open
136
+ - external_local_readiness
137
+ - external_draft_transition
138
+ - external_draft_lifecycle
139
+ - external_full_flow
140
+
141
+ oss_feedback_hardening:
142
+ path: profiles/oss-feedback-hardening.yml.tmpl
143
+ description: Generic maintainer-feedback hardening profile.
144
+ output_hint: orp.external-pr-feedback-hardening.yml
145
+ default_profiles:
146
+ - external_feedback_hardening
@@ -0,0 +1,92 @@
1
+ version: "1"
2
+
3
+ project:
4
+ name: external-pr-feedback-hardening
5
+ repo_root: .
6
+ canonical_paths:
7
+ target_repo_root: {{TARGET_REPO_ROOT}}
8
+
9
+ runtime:
10
+ shell: /bin/bash
11
+ default_timeout_sec: {{ORP_TIMEOUT_SEC}}
12
+ artifacts_root: orp/artifacts
13
+
14
+ packet:
15
+ default_kind: verification
16
+ output_dir: orp/packets
17
+ write_markdown: true
18
+ deterministic_mode: true
19
+
20
+ lifecycle:
21
+ claim_status_map:
22
+ Draft: draft
23
+ In review: ready
24
+ Verified: reviewed
25
+ Blocked: blocked
26
+ Retracted: retracted
27
+ atom_status_map:
28
+ todo: draft
29
+ in_progress: ready
30
+ blocked: blocked
31
+ done: reviewed
32
+ claim_level_values:
33
+ - Exact
34
+ - Verified
35
+ - Heuristic
36
+ - Conjecture
37
+
38
+ gates:
39
+ - id: feedback_record
40
+ description: Record what slipped, why it slipped, and the intended prevention path.
41
+ phase: verification
42
+ command: >
43
+ {{FEEDBACK_RECORD_COMMAND}}
44
+ working_dir: {{TARGET_REPO_ROOT}}
45
+ pass:
46
+ exit_codes: [0]
47
+ stdout_must_contain:
48
+ - {{FEEDBACK_RECORD_PASS_TOKEN}}
49
+ evidence:
50
+ include_stdout: true
51
+ include_stderr: true
52
+ on_fail: mark_blocked
53
+
54
+ - id: guard_validation
55
+ description: Validate new or updated guards with explicit PASS and FAIL coverage.
56
+ phase: verification
57
+ command: >
58
+ {{GUARD_VALIDATION_COMMAND}}
59
+ working_dir: {{TARGET_REPO_ROOT}}
60
+ pass:
61
+ exit_codes: [0]
62
+ stdout_must_contain:
63
+ - {{GUARD_VALIDATION_PASS_TOKEN}}
64
+ evidence:
65
+ include_stdout: true
66
+ include_stderr: true
67
+ on_fail: stop
68
+
69
+ - id: docs_sync
70
+ description: Confirm docs, templates, and agent instructions were updated in the same pass.
71
+ phase: verification
72
+ command: >
73
+ {{DOC_SYNC_COMMAND}}
74
+ working_dir: {{TARGET_REPO_ROOT}}
75
+ pass:
76
+ exit_codes: [0]
77
+ stdout_must_contain:
78
+ - {{DOC_SYNC_PASS_TOKEN}}
79
+ evidence:
80
+ include_stdout: true
81
+ include_stderr: true
82
+ on_fail: mark_blocked
83
+
84
+ profiles:
85
+ external_feedback_hardening:
86
+ description: Convert maintainer feedback into a validated guard plus synchronized docs.
87
+ mode: collaboration
88
+ packet_kind: verification
89
+ gate_ids:
90
+ - feedback_record
91
+ - guard_validation
92
+ - docs_sync
@@ -0,0 +1,233 @@
1
+ version: "1"
2
+
3
+ project:
4
+ name: external-pr-governance
5
+ repo_root: .
6
+ canonical_paths:
7
+ target_repo_root: {{TARGET_REPO_ROOT}}
8
+ default_pr_body_file: {{TARGET_REPO_ROOT}}/{{DEFAULT_PR_BODY_FILE}}
9
+
10
+ runtime:
11
+ shell: /bin/bash
12
+ default_timeout_sec: {{ORP_TIMEOUT_SEC}}
13
+ artifacts_root: orp/artifacts
14
+
15
+ packet:
16
+ default_kind: pr
17
+ output_dir: orp/packets
18
+ write_markdown: true
19
+ deterministic_mode: true
20
+
21
+ lifecycle:
22
+ claim_status_map:
23
+ Draft: draft
24
+ In review: ready
25
+ Verified: reviewed
26
+ Blocked: blocked
27
+ Retracted: retracted
28
+ atom_status_map:
29
+ todo: draft
30
+ in_progress: ready
31
+ blocked: blocked
32
+ done: reviewed
33
+ claim_level_values:
34
+ - Exact
35
+ - Verified
36
+ - Heuristic
37
+ - Conjecture
38
+
39
+ gates:
40
+ - id: watch_select
41
+ description: Select a target issue or contribution lane and record why it is worth pursuing.
42
+ phase: scope_lock
43
+ command: >
44
+ {{WATCH_SELECT_COMMAND}}
45
+ working_dir: {{TARGET_REPO_ROOT}}
46
+ pass:
47
+ exit_codes: [0]
48
+ stdout_must_contain:
49
+ - {{WATCH_SELECT_PASS_TOKEN}}
50
+ evidence:
51
+ include_stdout: true
52
+ include_stderr: true
53
+ on_fail: mark_blocked
54
+
55
+ - id: viability_gate
56
+ description: Decide whether work is viable and etiquette-safe to start.
57
+ phase: scope_lock
58
+ command: >
59
+ {{VIABILITY_COMMAND}}
60
+ working_dir: {{TARGET_REPO_ROOT}}
61
+ pass:
62
+ exit_codes: [0]
63
+ stdout_must_contain:
64
+ - {{VIABILITY_PASS_TOKEN}}
65
+ evidence:
66
+ include_stdout: true
67
+ include_stderr: true
68
+ on_fail: mark_blocked
69
+
70
+ - id: overlap_gate
71
+ description: Decide whether overlap is clear or coordination is already complete.
72
+ phase: scope_lock
73
+ command: >
74
+ {{OVERLAP_COMMAND}}
75
+ working_dir: {{TARGET_REPO_ROOT}}
76
+ pass:
77
+ exit_codes: [0]
78
+ stdout_must_contain:
79
+ - {{OVERLAP_PASS_TOKEN}}
80
+ evidence:
81
+ include_stdout: true
82
+ include_stderr: true
83
+ on_fail: mark_blocked
84
+
85
+ - id: local_gate
86
+ description: Run the repo-local verification gate before any public PR update.
87
+ phase: verification
88
+ command: >
89
+ {{LOCAL_GATE_COMMAND}}
90
+ working_dir: {{TARGET_REPO_ROOT}}
91
+ timeout_sec: {{ORP_TIMEOUT_SEC}}
92
+ pass:
93
+ exit_codes: [0]
94
+ stdout_must_contain:
95
+ - {{LOCAL_GATE_PASS_TOKEN}}
96
+ evidence:
97
+ include_stdout: true
98
+ include_stderr: true
99
+ on_fail: stop
100
+
101
+ - id: ready_to_draft
102
+ description: Freeze the branch or change-set as ready to open or update a draft PR.
103
+ phase: verification
104
+ command: >
105
+ {{READY_TO_DRAFT_COMMAND}}
106
+ working_dir: {{TARGET_REPO_ROOT}}
107
+ pass:
108
+ exit_codes: [0]
109
+ stdout_must_contain:
110
+ - {{READY_TO_DRAFT_PASS_TOKEN}}
111
+ evidence:
112
+ include_stdout: true
113
+ include_stderr: true
114
+ on_fail: stop
115
+
116
+ - id: pr_body_preflight
117
+ description: Enforce portable, reviewer-friendly public PR text.
118
+ phase: verification
119
+ command: >
120
+ {{PR_BODY_PREFLIGHT_COMMAND}}
121
+ working_dir: {{TARGET_REPO_ROOT}}
122
+ pass:
123
+ exit_codes: [0]
124
+ stdout_must_contain:
125
+ - {{PR_BODY_PASS_TOKEN}}
126
+ evidence:
127
+ include_stdout: true
128
+ include_stderr: true
129
+ paths:
130
+ - {{TARGET_REPO_ROOT}}/{{DEFAULT_PR_BODY_FILE}}
131
+ on_fail: mark_blocked
132
+
133
+ - id: draft_pr_transition
134
+ description: Open or update the draft PR only after the same-HEAD ready marker is satisfied.
135
+ phase: verification
136
+ command: >
137
+ {{DRAFT_PR_TRANSITION_COMMAND}}
138
+ working_dir: {{TARGET_REPO_ROOT}}
139
+ pass:
140
+ exit_codes: [0]
141
+ stdout_must_contain:
142
+ - {{DRAFT_PR_TRANSITION_PASS_TOKEN}}
143
+ evidence:
144
+ include_stdout: true
145
+ include_stderr: true
146
+ paths:
147
+ - {{TARGET_REPO_ROOT}}/{{DEFAULT_PR_BODY_FILE}}
148
+ on_fail: stop
149
+
150
+ - id: draft_ci
151
+ description: Confirm draft CI is green or otherwise approved for promotion.
152
+ phase: verification
153
+ command: >
154
+ {{DRAFT_CI_COMMAND}}
155
+ working_dir: {{TARGET_REPO_ROOT}}
156
+ pass:
157
+ exit_codes: [0]
158
+ stdout_must_contain:
159
+ - {{DRAFT_CI_PASS_TOKEN}}
160
+ evidence:
161
+ include_stdout: true
162
+ include_stderr: true
163
+ on_fail: mark_blocked
164
+
165
+ - id: ready_for_review
166
+ description: Confirm the PR can be promoted from draft to ready-for-review.
167
+ phase: verification
168
+ command: >
169
+ {{READY_FOR_REVIEW_COMMAND}}
170
+ working_dir: {{TARGET_REPO_ROOT}}
171
+ pass:
172
+ exit_codes: [0]
173
+ stdout_must_contain:
174
+ - {{READY_FOR_REVIEW_PASS_TOKEN}}
175
+ evidence:
176
+ include_stdout: true
177
+ include_stderr: true
178
+ on_fail: mark_blocked
179
+
180
+ profiles:
181
+ external_watch_select:
182
+ description: Watch/select stage for choosing a candidate contribution target before pre-open checks.
183
+ mode: collaboration
184
+ packet_kind: pr
185
+ gate_ids:
186
+ - watch_select
187
+
188
+ external_pre_open:
189
+ description: Viability and overlap checks after a target is selected and before implementation or draft creation.
190
+ mode: collaboration
191
+ packet_kind: pr
192
+ gate_ids:
193
+ - viability_gate
194
+ - overlap_gate
195
+
196
+ external_local_readiness:
197
+ description: Local verification, freeze, and PR-body hygiene before draft open/update.
198
+ mode: collaboration
199
+ packet_kind: pr
200
+ gate_ids:
201
+ - local_gate
202
+ - ready_to_draft
203
+ - pr_body_preflight
204
+
205
+ external_draft_transition:
206
+ description: Open or update the draft PR once the same-HEAD readiness chain has passed.
207
+ mode: collaboration
208
+ packet_kind: pr
209
+ gate_ids:
210
+ - draft_pr_transition
211
+
212
+ external_draft_lifecycle:
213
+ description: Draft CI and ready-for-review checks after a draft PR exists.
214
+ mode: collaboration
215
+ packet_kind: pr
216
+ gate_ids:
217
+ - draft_ci
218
+ - ready_for_review
219
+
220
+ external_full_flow:
221
+ description: End-to-end lifecycle from watch/select through draft promotion readiness.
222
+ mode: collaboration
223
+ packet_kind: pr
224
+ gate_ids:
225
+ - watch_select
226
+ - viability_gate
227
+ - overlap_gate
228
+ - local_gate
229
+ - ready_to_draft
230
+ - pr_body_preflight
231
+ - draft_pr_transition
232
+ - draft_ci
233
+ - ready_for_review
@@ -0,0 +1,92 @@
1
+ # Issue Smashers Pack
2
+
3
+ Opinionated ORP pack for running disciplined external contribution work from a
4
+ shared `issue-smashers/` workspace.
5
+
6
+ This pack is meant to sit one layer above the generic
7
+ `external-pr-governance` pack:
8
+
9
+ - `external-pr-governance` keeps the portable lifecycle contract
10
+ - `issue-smashers` adds a workspace convention, operator-facing docs, and a
11
+ reusable scaffold for multi-repo issue work
12
+
13
+ ## What this pack installs
14
+
15
+ `orp pack install --pack-id issue-smashers` renders:
16
+
17
+ - `orp.issue-smashers.yml`
18
+ - `orp.issue-smashers-feedback-hardening.yml`
19
+ - `orp.issue-smashers.pack-install-report.md`
20
+
21
+ and bootstraps a workspace skeleton under:
22
+
23
+ - `issue-smashers/README.md`
24
+ - `issue-smashers/WORKSPACE_RULES.md`
25
+ - `issue-smashers/setup-issue-smashers.sh`
26
+ - `issue-smashers/analysis/PR_DRAFT_BODY.md`
27
+ - `issue-smashers/analysis/ISSUE_SMASHERS_WATCHLIST.json`
28
+ - `issue-smashers/analysis/ISSUE_SMASHERS_STATUS.md`
29
+ - `issue-smashers/repos/`
30
+ - `issue-smashers/worktrees/`
31
+ - `issue-smashers/scratch/`
32
+ - `issue-smashers/archive/`
33
+
34
+ The pack is intentionally install-and-adapt:
35
+
36
+ - workspace structure is real
37
+ - profile templates are real
38
+ - command hooks still require adapter-specific commands before governance runs
39
+ become meaningful
40
+
41
+ ## Workspace model
42
+
43
+ The `issue-smashers/` directory is a plain workspace, not a replacement for
44
+ ORP core and not a monorepo that should own cloned target repos in Git
45
+ history.
46
+
47
+ Recommended usage:
48
+
49
+ - keep ORP installed globally or available as a separate source repo
50
+ - install this pack into a parent directory
51
+ - let `issue-smashers/repos/` hold base clones
52
+ - let `issue-smashers/worktrees/` hold one active lane per issue
53
+ - treat `scratch/` as disposable and `archive/` as optional
54
+
55
+ ## Install through ORP
56
+
57
+ ```bash
58
+ orp pack install --pack-id issue-smashers
59
+ ```
60
+
61
+ That gives you the rendered configs plus the workspace scaffold.
62
+
63
+ For a clean test flow, replace the placeholder commands with simple pass
64
+ commands and run:
65
+
66
+ ```bash
67
+ orp --config orp.issue-smashers.yml \
68
+ gate run --profile issue_smashers_full_flow
69
+
70
+ orp --config orp.issue-smashers.yml \
71
+ packet emit --profile issue_smashers_full_flow
72
+
73
+ orp --config orp.issue-smashers-feedback-hardening.yml \
74
+ gate run --profile issue_smashers_feedback_hardening
75
+ ```
76
+
77
+ ## Included adapters
78
+
79
+ - `adapters/mathlib/`
80
+ - maps the pack to the highest-rigor current workflow
81
+ - `adapters/formal-conjectures/`
82
+ - sketches the next non-mathlib target
83
+ - `adapters/generic-github/`
84
+ - keeps the workspace useful even before repo-specific adapters exist
85
+
86
+ ## Design rule
87
+
88
+ Use this pack when you want the operator ergonomics and directory shape of
89
+ Issue Smashers.
90
+
91
+ Use `external-pr-governance` when you only want the generic lifecycle without a
92
+ workspace convention.
@@ -0,0 +1,17 @@
1
+ # Formal Conjectures Adapter Notes
2
+
3
+ Use this adapter when the issue-smashers lane targets
4
+ `google-deepmind/formal-conjectures` or a similar formalization-heavy external
5
+ repo.
6
+
7
+ This adapter is intentionally lighter than the mathlib reference today. It
8
+ should grow into:
9
+
10
+ - issue watch and candidate selection
11
+ - viability rules around collaborator activity and active PR overlap
12
+ - local test/build gates for the target repo
13
+ - clean PR-body and disclosure conventions
14
+ - feedback hardening when maintainers reveal a missed check
15
+
16
+ Until the adapter is fully specified, treat the rendered Issue Smashers config as
17
+ install-and-adapt and replace placeholder commands with repo-specific commands.
@@ -0,0 +1,16 @@
1
+ # Generic GitHub Adapter Notes
2
+
3
+ Use this adapter when you want the Issue Smashers workspace shape before a
4
+ repo-specific adapter exists.
5
+
6
+ The minimum viable setup is:
7
+
8
+ - choose a target repo and issue lane
9
+ - record it in the watchlist and status board
10
+ - replace each placeholder command with a real repo-specific command or a test
11
+ stub
12
+ - keep the PR body under the workspace analysis directory
13
+
14
+ This adapter is intentionally simple. It keeps the pack useful for new repos
15
+ without pretending generic GitHub etiquette is the same as a mature
16
+ repo-specific workflow.
@@ -0,0 +1,32 @@
1
+ # Mathlib Adapter Notes
2
+
3
+ Use this adapter when the issue-smashers lane targets
4
+ `leanprover-community/mathlib4`.
5
+
6
+ Source-of-truth behavior currently lives in the stronger reference workflow
7
+ developed from `sunflower-coda`:
8
+
9
+ - issue watch and triage
10
+ - viability and etiquette gate
11
+ - overlap precheck
12
+ - local gate
13
+ - ready-to-draft same-head freeze
14
+ - PR-body preflight
15
+ - draft PR transition
16
+ - draft CI and ready-for-review checks
17
+ - feedback hardening
18
+
19
+ Recommended mapping for rendered command variables:
20
+
21
+ - `WATCH_SELECT_COMMAND` -> watchlist or issue selection script
22
+ - `VIABILITY_COMMAND` -> mathlib issue viability gate
23
+ - `OVERLAP_COMMAND` -> mathlib overlap precheck
24
+ - `LOCAL_GATE_COMMAND` -> mathlib local gate
25
+ - `READY_TO_DRAFT_COMMAND` -> mathlib ready-to-draft gate
26
+ - `PR_BODY_PREFLIGHT_COMMAND` -> mathlib PR body preflight
27
+ - `DRAFT_PR_TRANSITION_COMMAND` -> mathlib draft PR open/update script
28
+ - `DRAFT_CI_COMMAND` -> draft CI watcher
29
+ - `READY_FOR_REVIEW_COMMAND` -> ready-for-review gate
30
+
31
+ Use this adapter when you want Issue Smashers ergonomics but mathlib-grade
32
+ discipline.