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,94 @@
1
+ # Agent Integration (Agentic Flow)
2
+
3
+ If you use an AI agent that reads a **primary instruction Markdown file** (agent-specific; the agent will know the filename),
4
+ integrate ORP by adding an **ORP section** to that file.
5
+
6
+ This makes ORP the agent’s default operating mode: explicit claim levels, reproducible verification, first-class failed paths,
7
+ and dispute resolution by verification/downgrade (not debate).
8
+
9
+ ## Agent discovery surfaces
10
+
11
+ Before deeper work, agents can discover ORP through three lightweight entry points:
12
+
13
+ - `llms.txt` — concise repo/package map for agents that scan docs before acting.
14
+ - `orp about --json` — machine-readable tool metadata, stable artifact paths, schemas, and available packs.
15
+ - `orp pack list --json` — machine-readable inventory of bundled packs.
16
+ - `docs/AGENT_LOOP.md` — canonical ORP operating rhythm for agent-led workflows.
17
+
18
+ ## What to add to your agent’s instruction file
19
+
20
+ Copy/paste this section into your agent’s main instruction Markdown file:
21
+
22
+ <!-- ORP:BEGIN -->
23
+ ## Open Research Protocol (ORP)
24
+
25
+ **Non-negotiable boundary:** ORP docs/templates are **process-only** and are **not evidence**. Evidence must live in canonical
26
+ artifact paths (code/data/proofs/logs/papers).
27
+
28
+ ### Default operating rules
29
+
30
+ - **Always label claims** as one of: **Exact / Verified / Heuristic / Conjecture**.
31
+ - If unsure, **downgrade** rather than overclaim.
32
+ - For **Exact/Verified**: include a **Verification Hook** (commands + expected outputs + determinism notes) and produce a
33
+ **Verification Record** with **PASS / FAIL / INCONCLUSIVE**.
34
+ - If verification is **FAIL**: **downgrade immediately** and link the failure evidence.
35
+ - Treat **failed paths** as assets: record dead ends as a `Failed Path Record` with the blocking reason/counterexample and a
36
+ next hook.
37
+ - Resolve disputes by **verification or downgrade**, not argument.
38
+
39
+ ### How to work in an ORP repo
40
+
41
+ - Before starting: read `PROTOCOL.md` and confirm the project’s **Canonical Paths** are defined.
42
+ - When proposing a result: create/update a claim (via `templates/CLAIM.md`) that points to canonical artifacts (not ORP docs).
43
+ - When verifying: run the hook and write `templates/VERIFICATION_RECORD.md`.
44
+ - When something fails: write `templates/FAILED_TOPIC.md` and link it from the claim/issue.
45
+
46
+ ### Instruments (optional; upstream framing only)
47
+
48
+ - ORP may include optional Instruments under `modules/instruments/` (e.g., Orbit / Compression / Adversarial).
49
+ - Instruments are **process-only** and must not contain evidence/results. Verification remains blind to instruments.
50
+ - If an Instrument is used, note it in the claim’s **Instrument (optional)** section (name + parameters explored).
51
+
52
+ ### Protocol sync checks (required)
53
+
54
+ To prevent drift (especially after **context compaction / summarization**), re-check ORP and re-sync this block:
55
+
56
+ - at **session start** / **new task**,
57
+ - **immediately after any context compaction/summarization**,
58
+ - before publishing any **Verified/Exact** claim,
59
+ - after pulling/updating ORP files in the repo.
60
+
61
+ Sync procedure:
62
+ 1) Find the ORP root directory (the folder containing `PROTOCOL.md`).
63
+ 2) Ensure this ORP block matches `<ORP_ROOT>/AGENT_INTEGRATION.md` (between `<!-- ORP:BEGIN -->` and `<!-- ORP:END -->`).
64
+ 3) If out of date, sync it (script or manual):
65
+ - `<ORP_ROOT>/scripts/orp-agent-integrate.sh --sync /path/to/your/agent/instructions.md`
66
+
67
+ ### ORP checkpoint tool (recommended for agent workflows)
68
+
69
+ Use the checkpoint tool to keep handoffs/compactions honest and to reduce “drift-by-forgetting” before `git commit` / `git push`.
70
+
71
+ - Command:
72
+ - `<ORP_ROOT>/scripts/orp-checkpoint.sh --sync --agent-file /path/to/your/agent/instructions.md "checkpoint note"`
73
+ - Recommended moments:
74
+ - after context compaction/summarization or handoff
75
+ - before `git commit` / `git push`
76
+ - before publishing any **Verified/Exact** claim
77
+
78
+ This writes a process-only entry to `<ORP_ROOT>/cone/CONTEXT_LOG.md` and reports ORP snippet sync status.
79
+
80
+ <!-- ORP:END -->
81
+
82
+ ## Optional helper script
83
+
84
+ If you want an automated insert into a file you specify, use:
85
+
86
+ ```sh
87
+ ./scripts/orp-agent-integrate.sh --sync /path/to/your/agent/instructions.md
88
+ ```
89
+
90
+ To check for drift (no changes), use:
91
+
92
+ ```sh
93
+ ./scripts/orp-agent-integrate.sh --check /path/to/your/agent/instructions.md
94
+ ```
package/INSTALL.md ADDED
@@ -0,0 +1,159 @@
1
+ # Installing ORP into a repo
2
+
3
+ ORP supports both:
4
+
5
+ - docs-first template adoption (`PROTOCOL.md`, templates), and
6
+ - optional runtime CLI usage (`orp`) for gates/packets/packs.
7
+
8
+ The default runtime story is now:
9
+
10
+ - `orp discover ...` for profile-based GitHub scanning and opportunity selection
11
+ - `orp collaborate ...` for repository collaboration
12
+ - `orp erdos ...` for Erdos-specific workflows
13
+ - `orp pack ...` only when you need advanced/internal template install behavior
14
+
15
+ Optional global CLI install:
16
+
17
+ ```sh
18
+ npm i -g open-research-protocol
19
+ orp
20
+ orp -h
21
+ orp about --json
22
+ ```
23
+
24
+ CLI prerequisites:
25
+
26
+ - Python 3 on `PATH`
27
+ - `PyYAML` (`python3 -m pip install pyyaml`)
28
+
29
+ Agent-friendly discovery surfaces:
30
+
31
+ - bare `orp` for the CLI home screen with packs, repo status, and quick actions
32
+ - `orp home --json` for machine-readable landing context
33
+ - `orp discover profile init --json` for a portable discovery profile scaffold
34
+ - `orp discover github scan --profile orp.profile.default.json --json` for ranked GitHub repo/issue/person recommendations
35
+ - `orp collaborate init` for immediate collaboration scaffolding
36
+ - `orp collaborate workflows --json` for built-in collaboration workflow discovery
37
+ - `orp collaborate gates --workflow full_flow --json` for the exact gate chain
38
+ - `llms.txt` for quick repo/package discovery
39
+ - `orp about --json` for machine-readable capabilities, schemas, artifacts, and bundled packs
40
+ - `docs/DISCOVER.md` for the discovery profile model and Coda relationship
41
+ - `docs/AGENT_LOOP.md` for the intended agent operating rhythm
42
+ - `orp pack list --json` for machine-readable bundled pack inventory
43
+
44
+ Fastest collaboration setup in a fresh repo:
45
+
46
+ ```sh
47
+ orp collaborate init
48
+ orp collaborate workflows --json
49
+ orp collaborate run --workflow full_flow --json
50
+ ```
51
+
52
+ This uses ORP's built-in collaboration ability. You do not need to think in
53
+ terms of separate governance packs for the default collaboration path.
54
+
55
+ To choose where collaboration should start, scaffold a profile first:
56
+
57
+ ```sh
58
+ orp discover profile init --owner SproutSeeds --owner-type org
59
+ orp discover github scan --profile orp.profile.default.json --json
60
+ ```
61
+
62
+ ## Option 0 — Smoke-test ORP in a fresh directory
63
+
64
+ This is the fastest way to verify the published CLI before integrating ORP into a real repo.
65
+
66
+ ```sh
67
+ mkdir test-orp && cd test-orp
68
+ npm i -g open-research-protocol
69
+ orp init
70
+ orp gate run --profile default
71
+ orp packet emit --profile default
72
+ orp report summary
73
+ find orp -maxdepth 3 -type f | sort
74
+ ```
75
+
76
+ Expected outcomes:
77
+
78
+ - `orp.yml` is created in the working directory
79
+ - `orp/artifacts/<run_id>/RUN.json` is written after `gate run`
80
+ - `orp/packets/*.json` and `orp/packets/*.md` are written after `packet emit`
81
+ - `orp/artifacts/<run_id>/RUN_SUMMARY.md` is written after `report summary`
82
+
83
+ Then validate a real public pack flow:
84
+
85
+ ```sh
86
+ orp pack list
87
+ orp pack install --pack-id erdos-open-problems --include catalog
88
+ orp --config orp.erdos-catalog-sync.yml gate run --profile erdos_catalog_sync_active
89
+ orp report summary
90
+ ```
91
+
92
+ This exercises the published pack install path plus a real pack-backed gate run.
93
+
94
+ ## Option A — Add ORP to an existing repo
95
+
96
+ 1) Copy the folder into your repo (recommended: `orp/`):
97
+
98
+ ```sh
99
+ mkdir -p /path/to/your/repo/orp
100
+ cp -R /path/to/orp/* /path/to/your/repo/orp/
101
+ ```
102
+
103
+ 2) Link it from your repo `README.md` (example):
104
+
105
+ ```md
106
+ ## Protocol
107
+ This project follows ORP: `orp/PROTOCOL.md`.
108
+ ```
109
+
110
+ 3) Edit `orp/PROTOCOL.md` and fill in the **Canonical Paths** section for your repo. This is required for correctness.
111
+
112
+ 4) Start using templates for all claims/verifications:
113
+ - `orp/templates/CLAIM.md`
114
+ - `orp/templates/VERIFICATION_RECORD.md`
115
+ - `orp/templates/FAILED_TOPIC.md`
116
+
117
+ 5) Optional (agent users): integrate ORP into your agent’s primary instruction file:
118
+ - Read `orp/AGENT_INTEGRATION.md`
119
+ - Or run: `orp/scripts/orp-agent-integrate.sh --sync /path/to/your/agent/instructions.md`
120
+ - Optional checkpoint tool (writes a process-only handoff/compaction log): `orp/scripts/orp-checkpoint.sh --sync --agent-file /path/to/your/agent/instructions.md "checkpoint note"`
121
+
122
+ ## Option B — Start a new project from ORP
123
+
124
+ 1) Create a new project directory and copy ORP in:
125
+
126
+ ```sh
127
+ mkdir -p /path/to/new-project
128
+ cp -R /path/to/orp/* /path/to/new-project/
129
+ ```
130
+
131
+ 2) Rename/edit `README.md` and `PROTOCOL.md` for your project.
132
+
133
+ 3) Define canonical paths (paper/code/data/etc) in `PROTOCOL.md`.
134
+
135
+ 4) Optional (agent users): integrate ORP into your agent’s primary instruction file:
136
+ - Read `AGENT_INTEGRATION.md`
137
+ - Or run: `scripts/orp-agent-integrate.sh --sync /path/to/your/agent/instructions.md`
138
+ - Optional checkpoint tool (writes a process-only handoff/compaction log): `scripts/orp-checkpoint.sh --sync --agent-file /path/to/your/agent/instructions.md "checkpoint note"`
139
+
140
+ ## Optional helper script
141
+
142
+ If you want a guided copy:
143
+
144
+ ```sh
145
+ ./scripts/orp-init.sh /path/to/your/repo/orp
146
+ ```
147
+
148
+ If you are evaluating ORP for the first time, prefer Option 0 before copying files into a larger repo.
149
+
150
+ ## Important note: “activation”
151
+
152
+ ORP becomes real only when your team adopts the procedure:
153
+
154
+ - claims must be labeled,
155
+ - Exact/Verified claims must have verification hooks,
156
+ - disagreements are resolved by verification or downgrade,
157
+ - and failures are recorded as first-class artifacts.
158
+
159
+ There is no automated enforcement unless you add it (CI hooks, PR checks, etc.).
package/LICENSE ADDED
@@ -0,0 +1,22 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 SproutSeeds
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
22
+
package/PROTOCOL.md ADDED
@@ -0,0 +1,140 @@
1
+ # Project Protocol (ORP)
2
+ **Last updated:** 2026-01-21
3
+
4
+ ORP is a **process-only** protocol for producing trustworthy results.
5
+
6
+ **Boundary (non-negotiable):** This document and all ORP templates are **not evidence**. They must not be cited as proof for
7
+ results. Evidence must live in your project’s **canonical artifact paths** (code, data, logs, proofs, papers, etc.).
8
+
9
+ ---
10
+
11
+ ## Canonical Paths (Source of Truth)
12
+
13
+ Every project must define, in concrete paths, where authoritative artifacts live. Edit this list for your repo:
14
+
15
+ - **Paper/spec (if any):** `paper/`
16
+ - **Code:** `src/` (or `core/`, etc.)
17
+ - **Analysis/experiments:** `analysis/`
18
+ - **Data/artifacts:** `data/`
19
+ - **Formal proofs (optional):** `proof/` / `lean/` / `coq/`
20
+ - **Runbooks/logs (optional):** `runbooks/` / `logs/`
21
+
22
+ Rule: **All claims must point to canonical artifacts.** If a claim cannot be tied to a canonical artifact, it is not a claim yet.
23
+
24
+ ---
25
+
26
+ ## Claim Levels
27
+
28
+ All claims must be labeled as exactly one of:
29
+
30
+ - **Exact** — proven/certified; independently reproducible with explicit commands and artifacts.
31
+ - **Verified** — confirmed for a specific artifact (e.g., a construction, dataset, or run) but not claimed optimal/universal.
32
+ - **Heuristic** — strong evidence, not exhaustive.
33
+ - **Conjecture** — hypothesis / model / pattern; explicitly unproven.
34
+
35
+ Default rule: **When unsure, downgrade.**
36
+
37
+ ---
38
+
39
+ ## Artifact Requirements (Minimum)
40
+
41
+ ### Exact claims
42
+ Must include a verification hook that another person can run:
43
+
44
+ - precise command(s),
45
+ - inputs (paths, versions),
46
+ - outputs (logs, certificates, checksums),
47
+ - and a verification record showing PASS.
48
+
49
+ ### Verified claims
50
+ Must include:
51
+
52
+ - the artifact (data/model/etc),
53
+ - a verifier script or deterministic procedure,
54
+ - and a verification record showing PASS.
55
+
56
+ ### Heuristic / Conjecture
57
+ Must include:
58
+
59
+ - scope and limitations,
60
+ - what would upgrade it to Verified/Exact,
61
+ - and at least one concrete next hook.
62
+
63
+ ---
64
+
65
+ ## Verification Records (Required for Exact/Verified)
66
+
67
+ Use `templates/VERIFICATION_RECORD.md`.
68
+
69
+ **Default dispute action:**
70
+ - If verification is **FAIL** → downgrade the claim level immediately.
71
+ - If verification is **INCONCLUSIVE** → downgrade by default (or keep the original label but add an explicit “blocked by X” note).
72
+
73
+ ---
74
+
75
+ ## Dispute Workflow (Verifier-first)
76
+
77
+ If two contributors disagree:
78
+
79
+ 1) The claim owner provides canonical artifacts + commands.
80
+ 2) A verifier attempts reproduction and writes a verification record.
81
+ 3) Outcomes:
82
+ - PASS → claim stands at its label.
83
+ - FAIL → claim is downgraded (and linked to the failure record).
84
+ - INCONCLUSIVE → downgrade by default; open a follow-up issue.
85
+
86
+ Disputes must resolve via **verification or downgrade**, not argument.
87
+
88
+ ---
89
+
90
+ ## Failed Paths (First-class artifacts)
91
+
92
+ Failures are valuable when they prevent repeated work.
93
+
94
+ Use `templates/FAILED_TOPIC.md` to record:
95
+
96
+ - what was tried,
97
+ - what failed and why,
98
+ - the minimal counterexample / blocking reason,
99
+ - and a “next hook” for future attempts.
100
+
101
+ Suggested naming convention:
102
+
103
+ - `analysis/FAILED_<topic>.md` (or your repo’s canonical analysis area)
104
+
105
+ ---
106
+
107
+ ## Alignment / Polish Log (Non-blocking; Append-only)
108
+
109
+ When a verification/audit **PASSES** but yields optional suggestions (wording, clarity, alignment),
110
+ record them in an append-only log (recommended path):
111
+
112
+ - `analysis/ALIGNMENT_LOG.md`
113
+
114
+ Rules:
115
+ - Non-authoritative; non-blocking.
116
+ - Must not upgrade claims.
117
+ - Must not be cited as evidence.
118
+
119
+ ---
120
+
121
+ ## Roles (Optional, but recommended)
122
+
123
+ This protocol supports role separation:
124
+
125
+ - **Explorer** — proposes claims, builds artifacts.
126
+ - **Verifier** — reproduces/checks claims; can downgrade labels.
127
+ - **Synthesizer** — integrates results into shared structure without introducing new claims.
128
+
129
+ No maintainer tie-break is required if verification hooks exist and downgrade rules are followed.
130
+
131
+ ---
132
+
133
+ ## Contribution Workflow (default)
134
+
135
+ If unsure where something belongs, record it at a lower claim level and let verification decide.
136
+
137
+ 1) Write a claim using `templates/CLAIM.md` and put the real content in canonical paths.
138
+ 2) Run verification and write `templates/VERIFICATION_RECORD.md`.
139
+ 3) Only then update any shared docs (paper/README) with language matching the claim level.
140
+ 4) If something fails, record it with `templates/FAILED_TOPIC.md`.