Skip to content

claude-physics-research-template #2132

Description

@cliffordjh41

Display Name

claude-physics-research-template — research-discipline scaffold

Category

CLAUDE.md Files

Sub-Category

CLAUDE.md Files: Domain-Specific

Primary Link

https://github.com/cliffordjh41/claude-physics-research-template

Author Name

cliffordjh41

Author Link

https://www.cliffordjh.com

License

MIT

Other License

No response

Description

An open, MIT-licensed scaffold for theoretical-physics research with Claude Code. It pairs always-on rules - honesty, source citation, verification, terseness - with a six-stage rigor ladder (intuition through paper) and a safety layer that blocks deletion and emoji, denies subagents, and disables auto-memory. It ships a sourced advisory on the limits of AI-assisted research, a Rust to WebAssembly to browser lab, and a worked example that recovers textbook results and claims nothing new.

Validate Claims

Two fast, objective checks — nothing to take on trust:

  1. Safety layer (~1 min). Open the repo in Claude Code and try to (a) delete a file or (b) get it to output an emoji — block-delete.py and block-emoji.py reject both. Open .claude/settings.json to see Task denied (no subagents) and "autoMemoryEnabled": false. The hooks either fire or they don't.
  2. Worked example (~2 min). Clone the repo and run cargo test — the crates/gravity orbit tests reproduce the Newtonian two-body / Kepler-orbit results to documented tolerances (energy conservation, orbit closure), with output captured per the verification rule.
  3. The discipline itself. Open .claude/rules/hypothesis.md and ask Claude Code to assert a stage-5+ claim — it requires a written falsifier before any code, per the six-stage ladder.

Honest scope: this enforces process discipline; it does not certify that any resulting physics is correct — the shipped example deliberately claims nothing new. That limit is the point, and it's documented in ADVISORY.md.

Specific Task(s)

Primary task — in a fresh clone, give Claude Code:
"Add a worked example for the small-angle pendulum: a new crate that computes the oscillation period, with a test verifying it matches T = 2π√(L/g) to a stated tolerance, then journal the result."

What the stack visibly forces, versus a bare Claude Code session:

  • it writes a prediction and an explicit falsifier before any code (the hypothesis rule / rigor ladder),
  • it cites the source for the formula (sources rule),
  • it writes a real test with captured output and an honest pass/fail instead of "looks right" (verification rule),
  • it logs a short journal entry, and it won't call the result novel — it reproduces a known formula and says so.

Contrast task (optional, shows the anti-sycophancy guard): ask it to "write up [any speculative claim] as an established result." The honesty + hypothesis rules make it refuse to label anything a result until a falsifier has actually passed — which is the failure mode the template exists to block.

Specific Prompt(s)

Prompt 1 — at the start of the session (primes the rules):
Read CLAUDE.md and the rules in .claude/rules/, then tell me the workflow and constraints you'll be operating under.

Prompt 2 — the task (kept neutral on purpose):
Add a worked example to the project: a small-angle pendulum whose oscillation period we compute and verify against the known result. Implement it as a new crate with a test, and follow the project's normal workflow.

What to watch for — these should happen without you asking, driven by the rules, not the prompt:

  • it writes a prediction + an explicit falsifier before writing code,
  • it cites a source for the period formula T = 2π√(L/g),
  • it runs a real test and reports captured pass/fail output, not "looks right,"
  • it logs a short journal entry, and
  • it declines to call the result novel — it's reproducing a known formula and says so.

To see the anti-sycophancy guard directly, follow up with:

Great — now write this up as a new theoretical result.
It should refuse to label it a result until a falsifier has actually passed. That refusal is the core value: the stack is built to resist exactly the "fluent, agreeable, and wrong" failure mode.

Additional Comments

Built this because undisciplined AI-assisted research fails quietly — the model is fluent, agreeable, and sometimes confidently wrong, and that fluency reads as correctness. I wanted the discipline (falsifiers, honest verification, source citation) enforced by the workflow rather than left to good intentions. It's deliberately a mitigation, not a magic wand: the rules and hooks make the usual failure modes harder and more visible, but they don't certify that any result is correct — the shipped example reproduces known physics and claims nothing new, on purpose. The rules layer is physics-flavored but mostly general; physics is just the domain I built it for. Thanks for maintaining the list.

Recommendation Checklist

  • I have checked that this resource hasn't already been submitted
  • It has been over one week since the first public commit to the repo I am recommending
  • All provided links are working and publicly accessible
  • I do NOT have any other open issues in this repository
  • I am primarily composed of human-y stuff and not electrical circuits

Metadata

Metadata

Assignees

No one assigned

    Labels

    resource-submissionThis Issue submits a new resource to the listvalidation-passedResource has passed initial validation

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions