Skip to main content

Defendable Science

Research you can defend.

Defendable Science helps you keep research honest — especially now that AI is in the loop. You (not the AI) make and sign off every material decision, and you must be able to explain and defend the work; the tool keeps the accounts, advises, and probes. It supports honest, disclosable AI-assisted research — it does not certify that any work is honest.

This package is the CLI / tooling behind the defendable-science Claude Code plugin. The plugin (skills + methodology) stays pure-markdown; this package provides the defendable-science command it calls — literature, dataset, defend, backlog, and doctor — installed isolated, so it never touches your project's ML environment.

Install

uv tool install defendable-science     # recommended (isolated tool env)
# or: pipx install defendable-science
# or: pip install defendable-science

defendable-science --version
defendable-science doctor              # reports python / uv / rclone

Documentation: https://defendable.science/

CLI

defendable-science --version
defendable-science doctor                                           # environment report
defendable-science literature resolve|cites|refs|enrich|neighbors   # citation graph (OpenAlex + S2)
defendable-science dataset    validate|ingest|emit                  # manifest + Croissant
defendable-science dataset    fetch|verify|mirror|audit             # SHA-256 retrieval + rclone mirror
defendable-science defend     record                                # understanding-status record
defendable-science backlog    park|add|list|rank|promote|drop       # exploration backlog
defendable-science keys       set|list|check|unset|path             # API-key & credential store

Every command is implemented and emits JSON (the skills parse it). Failures are surfaced honestly: a rate-limit or transient network error is retried with backoff (honoring Retry-After) and, if it persists, reported as a distinct, actionable message — never a silent "not found" and never a traceback. A missing API key or rclone binary is reported cleanly, and an optional key (e.g. S2_API_KEY) simply lifts the rate ceiling — see API keys & credentials.

API keys & credentials

Some services throttle hard without a key. Providing one is optional (the tooling degrades gracefully) but lifts the ceiling:

Key Service What it buys How to obtain
S2_API_KEY Semantic Scholar Rate limit well above the shared keyless pool. https://www.semanticscholar.org/product/api#api-key
OPENALEX_MAILTO OpenAlex The "polite pool" (a contact email) — faster, more reliable. https://docs.openalex.org/how-to-use-the-api/rate-limits-and-authentication
RCLONE_CONFIG_<REMOTE>_* Private dataset mirror rclone remote credentials passed as scoped env vars (no config file). Per your rclone remote.

Keys live in a CLI-managed JSON store at .defendable-science/keys.json (gitignored, created 0600), read with os.environ > store > unset precedence, so an environment variable always wins. Manage it with keys:

defendable-science keys set S2_API_KEY        # hidden prompt, or reads piped stdin
echo "$MY_KEY" | defendable-science keys set S2_API_KEY
defendable-science keys set < keys.json       # a JSON object sets many at once
defendable-science keys list                  # presence + source (never the value)
defendable-science keys check | unset | path

The value is read only from stdin or a hidden prompt — never argv — so it never hits your shell history or the process list, and list/check/doctor report presence only.

Plaintext at rest. The store is not encrypted; gitignore + 0600 limit exposure but are not a vault. OS-keychain backing is a planned follow-up (#49).

Learn more

Changelog

https://github.com/davorrunje/defendable-science/blob/main/CHANGELOG.md

License

Apache-2.0.

Metadata

Release files for defendable-science 0.2.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for defendable-science 0.2.2
File Size Uploaded
defendable_science-0.2.2.tar.gz 51.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for defendable-science 0.2.2
File Interpreter ABI Platform
defendable_science-0.2.2-py3-none-any.whl Python 3 none any Details

Total release size: 110.2 kB

Release files / defendable_science-0.2.2.tar.gz

Download URL defendable_science-0.2.2.tar.gz
Size 51.7 kB
Tags Source
SHA-256 checksum
How to use checksums
2bc863af64306f5d830b37a92b5dc52160a24207404832f9b067380380ce0f35
BLAKE2b-256 checksum
How to use checksums
6b6c933d089488e788f1b4ec7392c77547a1d7152f3271f5f7fd963d0d632139
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 26, 2026.

Transparency log

Release files / defendable_science-0.2.2-py3-none-any.whl

Download URL defendable_science-0.2.2-py3-none-any.whl
Size 58.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7e6103c5702210b48839b762f5c9e56cc8a93ae609077731c30370dccdc02816
BLAKE2b-256 checksum
How to use checksums
fe39bca77c57af2b8d6b163b5e0051a3738e3bb100becab0726a091737f7cd46
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 26, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.2.2 This release

2 release files

0.2.1

2 release files

0.2.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page