Skip to content

Commit adb658f

Browse files
hyperpolymathclaude
andcommitted
feat: add Publication Pre-Flight Standard — the 8 P's
Present as precedent a performant, profiled, probed, proven, portable program for production and publication. 7-section checklist: tests (P2P+E2E+aspect+build+exec+self-test), static analysis (panic-attack+Hypatia), formal proofs (Idris2+Lean4+Agda), bibliography quality (real authors, impact venues, recency), claims verification (reproducible numbers, no overclaims), Zenodo/HAL metadata, and final review (reproducibility, spellcheck, LaTeX). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 80a9d0c commit adb658f

1 file changed

Lines changed: 181 additions & 0 deletions

File tree

Lines changed: 181 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,181 @@
1+
// SPDX-License-Identifier: PMPL-1.0-or-later
2+
// Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>
3+
= Publication Pre-Flight Standard
4+
Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>
5+
:toc: macro
6+
:sectnums:
7+
8+
Every hyperpolymath paper MUST pass this checklist before submission to
9+
Zenodo, HAL, arXiv, or any journal/conference. No exceptions.
10+
11+
[quote]
12+
____
13+
**Present as precedent a performant, profiled, probed, proven, portable program for production and publication.**
14+
____
15+
16+
The 8 P's: **Present** (publishable), **Precedent** (novel contribution),
17+
**Performant** (benchmarked), **Profiled** (no pathological hotspots),
18+
**Probed** (panic-attack clean), **Proven** (machine-checked proofs),
19+
**Portable** (builds on CI, not just your machine),
20+
**Production** (ready to use, not a toy).
21+
22+
toc::[]
23+
24+
== 1. Test Suite (ALL must pass)
25+
26+
[cols="1,3"]
27+
|===
28+
| Check | Description
29+
30+
| Point-to-point (P2P)
31+
| Individual function/module tests. Every public function has at least one test.
32+
33+
| End-to-end (E2E)
34+
| Full pipeline tests. Input → output matches expected for representative cases.
35+
36+
| Aspect tests
37+
| Cross-cutting concerns: security (injection, XSS, SSRF), performance (no O(n²) where O(n) claimed), concurrency (no data races), accessibility (where applicable).
38+
39+
| Build tests
40+
| `cargo build`, `mix compile`, `zig build`, `idris2 --check` — zero errors, zero warnings treated as errors.
41+
42+
| Execution tests
43+
| Binary runs, produces expected output, exits cleanly. CLI --help works.
44+
45+
| Self-tests
46+
| If the tool has built-in diagnostics (`opsm check`, `panic-attack assail`), run them on the repo itself.
47+
48+
| Benchmark suite
49+
| If the paper claims performance numbers, benchmarks MUST exist in repo and be runnable. Results must match claims within 20%.
50+
|===
51+
52+
== 2. Static Analysis
53+
54+
[cols="1,3"]
55+
|===
56+
| Check | Description
57+
58+
| panic-attack assail
59+
| Zero critical findings, zero high findings. Medium findings documented.
60+
61+
| Hypatia scan
62+
| `.hypatia/` directory present with recent scan cache.
63+
64+
| Dangerous patterns
65+
| `grep -r "believe_me\|sorry\|Admitted\|assert_total\|postulate\|unsafeCoerce\|Obj.magic"` — ZERO in proof code. Crypto axioms (SHA256 collision resistance etc.) are permitted IFF documented in paper with justification.
66+
|===
67+
68+
== 3. Formal Proofs
69+
70+
[cols="1,3"]
71+
|===
72+
| Check | Description
73+
74+
| Idris2
75+
| All `.idr` files compile with `%default total`. No `believe_me`, `assert_total`, or `postulate` except documented crypto axioms.
76+
77+
| Lean4
78+
| If claims are core to the paper, cross-validate at least the key theorems in Lean4.
79+
80+
| Agda / Coq
81+
| If the paper is in a domain where Agda or Coq is standard (e.g. PL metatheory), provide proofs there too. Zero `sorry` / `Admitted`.
82+
83+
| Proof coverage
84+
| Every theorem stated in the paper must have a machine-checked proof in the repo. If a theorem is conjectured (not proven), it MUST be labelled "Conjecture" not "Theorem".
85+
|===
86+
87+
== 4. Bibliography
88+
89+
[cols="1,3"]
90+
|===
91+
| Check | Description
92+
93+
| .bib file exists
94+
| Co-located with the .tex file. Every `\cite{}` resolves.
95+
96+
| Authors are real
97+
| Every cited author appears on DBLP, Google Scholar, or Semantic Scholar with a real publication history.
98+
99+
| Papers exist
100+
| Every cited paper can be found via its DOI, URL, or title search. No fabricated references.
101+
102+
| Impact quality
103+
| At least 50% of citations should be from venues with known impact (POPL, PLDI, ICFP, OOPSLA, LICS, TOPLAS, JFP, IEEE S&P, CCS, USENIX Security, or equivalent). Arxiv preprints are acceptable but should not dominate.
104+
105+
| Self-citation
106+
| Self-citations are permitted but must be minority (<30%). Each self-citation must be genuinely relevant, not padding.
107+
108+
| Recency
109+
| At least 30% of citations from the last 5 years. Classic foundational references exempt.
110+
|===
111+
112+
== 5. Claims Verification
113+
114+
[cols="1,3"]
115+
|===
116+
| Check | Description
117+
118+
| Quantitative claims
119+
| Every number in the abstract (N modules, X% improvement, Y tests) must be reproducible by running code in the repo. `wc -l`, `grep -c`, test output, benchmark logs.
120+
121+
| No overclaims
122+
| "We prove X" means a machine-checked proof exists. "We show X" means experimental evidence exists. "We conjecture X" means neither. Never use "prove" for "argue" or "demonstrate".
123+
124+
| Comparison claims
125+
| "Better than X" or "unlike X" claims must cite X and explain the specific dimension of comparison. No strawmen.
126+
127+
| Novelty claims
128+
| "First to X" or "no existing system does X" — verify via thorough literature search. These are the claims most likely to be wrong.
129+
|===
130+
131+
== 6. Zenodo / HAL Metadata
132+
133+
[cols="1,3"]
134+
|===
135+
| Check | Description
136+
137+
| `.zenodo.json`
138+
| Present in repo root with title, description, creators, keywords, subjects, license.
139+
140+
| HAL metadata
141+
| `hal-metadata.yml` present with title, authors, abstract, domains, keywords.
142+
143+
| GitHub release
144+
| Tag `vX.Y.Z-paper` created. Zenodo auto-creates DOI from release.
145+
146+
| DOI badge
147+
| After first Zenodo sync, add DOI badge to README.
148+
149+
| Dual deposit
150+
| Submit to BOTH Zenodo (DOI) and HAL (French national archive) for maximum discoverability.
151+
|===
152+
153+
== 7. Final Review
154+
155+
[cols="1,3"]
156+
|===
157+
| Check | Description
158+
159+
| Co-author review
160+
| If there are co-authors, all have reviewed and approved.
161+
162+
| Licence headers
163+
| SPDX headers on all source files. Paper itself under CC-BY-4.0 for text, PMPL for code.
164+
165+
| Reproducibility
166+
| A reviewer should be able to: clone the repo, run the tests, verify the claims, in under 30 minutes. If setup takes longer, add a `setup.sh`.
167+
168+
| Spellcheck
169+
| Run `aspell` or equivalent on the .tex file.
170+
171+
| LaTeX compiles
172+
| `pdflatex` + `bibtex` produces a clean PDF with no warnings.
173+
|===
174+
175+
== Traffic Light Summary
176+
177+
**GREEN** = all checks pass → submit immediately
178+
179+
**YELLOW** = 1-3 fixable issues → fix in one session, then re-check
180+
181+
**RED** = structural problems (missing implementation, unverified claims, wrong venue) → do not submit

0 commit comments

Comments
 (0)