diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml
new file mode 100644
index 0000000000..9348c2cdf6
--- /dev/null
+++ b/.github/workflows/codeql.yml
@@ -0,0 +1,46 @@
+name: CodeQL
+
+on:
+ push:
+ branches: [main]
+ pull_request:
+ branches: [main]
+ schedule:
+ - cron: "23 3 * * 1"
+ workflow_dispatch:
+
+permissions:
+ contents: read
+
+concurrency:
+ group: ${{ github.workflow }}-${{ github.ref }}
+ cancel-in-progress: true
+
+jobs:
+ analyze:
+ name: Analyze ${{ matrix.language }}
+ runs-on: ubuntu-latest
+ timeout-minutes: 30
+ permissions:
+ contents: read
+ security-events: write # Upload CodeQL results for this job only.
+ strategy:
+ fail-fast: false
+ matrix:
+ language: [python, rust, actions]
+ steps:
+ - name: Check out source
+ uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
+ with:
+ persist-credentials: false
+
+ - name: Initialise CodeQL
+ uses: github/codeql-action/init@6f2ac81f5cd81fe351a197ba0b00d91d03cd2aee # v4
+ with:
+ languages: ${{ matrix.language }}
+ build-mode: none
+
+ - name: Perform CodeQL analysis
+ uses: github/codeql-action/analyze@6f2ac81f5cd81fe351a197ba0b00d91d03cd2aee # v4
+ with:
+ category: "/language:${{ matrix.language }}"
diff --git a/CITATION.cff b/CITATION.cff
new file mode 100644
index 0000000000..16c98123d9
--- /dev/null
+++ b/CITATION.cff
@@ -0,0 +1,24 @@
+cff-version: 1.2.0
+message: "If you use this work, cite it with this metadata and the release tag or commit you used."
+title: "PlutarchPages"
+type: software
+authors:
+ - name: "EquityBot"
+abstract: "A clean-room PDF application in pure Rust, aiming at Adobe Acrobat Pro parity. A fork of PdfCraft."
+repository-code: "https://github.com/EquityBot/PlutarchPages"
+license-url: "https://github.com/EquityBot/PlutarchPages/blob/main/README.md#license-and-credits"
+keywords:
+ - desktop-app
+ - pdf
+ - pdf-editor
+ - pdf-tools
+ - pdf-viewer
+ - pdfcraft
+ - redaction
+ - rust
+references:
+ - type: software
+ title: "PdfCraft"
+ authors:
+ - name: "ArtCraft Team and the PdfCraft contributors"
+ repository-code: "https://github.com/storytold/pdfcraft"
diff --git a/README.md b/README.md
index 87fd23ae0e..8b28e73e18 100644
--- a/README.md
+++ b/README.md
@@ -7,19 +7,19 @@
+
+
+[](https://github.com/EquityBot/PlutarchPages/actions/workflows/ci.yml) [](https://github.com/EquityBot/PlutarchPages/actions/workflows/codeql.yml)
+[](https://www.rust-lang.org/) [](#license-and-credits) [](https://github.com/storytold/pdfcraft)
+
+
+
The PDF workbench; an open-source, clean-room reimplementation of Adobe Acrobat, rebuilt in pure Rust.
Read, organize, combine, split and secure PDFs in a fast, native app, written in Rust from the ground up.
macOS · Windows · Linux · FreeBSD · the web
-
-
-
-
-
-
-
> [!NOTE]
> **PlutarchPages is a fork of [PdfCraft](https://github.com/storytold/pdfcraft) by the ArtCraft team.** It adds
> the fixes and converters listed under [Fork changes](#fork-changes). It is not an ArtCraft product, and the
diff --git a/llms.txt b/llms.txt
new file mode 100644
index 0000000000..5a4fee141b
--- /dev/null
+++ b/llms.txt
@@ -0,0 +1,40 @@
+# PlutarchPages
+
+> A fork of PdfCraft: a clean-room PDF application in pure Rust for macOS, Windows, Linux, FreeBSD
+> and the web, aiming at Adobe Acrobat Pro parity. It is alpha: pages are still drawn by the `hayro`
+> crate, and editing existing text, OCR beyond Latin script and Office import and export are thin or missing.
+
+This fork publishes no builds of its own; build it from source with Rust 1.90 or later, for example
+`git clone https://github.com/EquityBot/PlutarchPages` and then
+`cargo run --release -p pdfcraft -- some.pdf`. The program, crates and binaries keep their `pdfcraft` names.
+
+## Start
+
+- [README](https://github.com/EquityBot/PlutarchPages#readme): features, fork changes, getting started and licence.
+- [Development](https://github.com/EquityBot/PlutarchPages/blob/main/docs/development.md): environment variables, logs and diagnostics.
+- [Roadmap summary](https://github.com/EquityBot/PlutarchPages/blob/main/ROADMAP.md): stage, parity numbers and progress log.
+
+## Docs
+
+- [Architecture](https://github.com/EquityBot/PlutarchPages/blob/main/docs/architecture.md): how the crates are built and layered today.
+- [Gaps](https://github.com/EquityBot/PlutarchPages/blob/main/docs/gaps.md): known shortfalls against Acrobat Pro, ranked.
+- [Parity with Acrobat Pro](https://github.com/EquityBot/PlutarchPages/blob/main/docs/target-app-parity.md): the overall assessment and how it is measured.
+- [Milestones](https://github.com/EquityBot/PlutarchPages/blob/main/docs/roadmap.md): milestones and current focus.
+- [MCP conventions](https://github.com/EquityBot/PlutarchPages/blob/main/docs/mcp.md): the opt-in `pdfcraft-cli mcp` server.
+- [Interface language](https://github.com/EquityBot/PlutarchPages/blob/main/docs/localization.md): choosing the interface language and what each catalogue covers.
+- [Editing images](https://github.com/EquityBot/PlutarchPages/blob/main/docs/editing-images.md): moving, resizing and deleting figures.
+- [Editing several objects](https://github.com/EquityBot/PlutarchPages/blob/main/docs/editing-multiple-objects.md): moving several objects together.
+- [File format parity](https://github.com/EquityBot/PlutarchPages/blob/main/docs/file-format-parity.md): formats read and written.
+- [PDF specification parity](https://github.com/EquityBot/PlutarchPages/blob/main/docs/pdf-spec-parity.md): ISO 32000-2 and subset standards coverage.
+- [UI parity](https://github.com/EquityBot/PlutarchPages/blob/main/docs/ui-parity.md): tools, panels and shortcuts against Acrobat Pro.
+- [Hardware and platform parity](https://github.com/EquityBot/PlutarchPages/blob/main/docs/hardware-parity.md): hardware features per platform.
+- [Localization parity](https://github.com/EquityBot/PlutarchPages/blob/main/docs/localization-parity.md): per-language interface status.
+- [Contributors](https://github.com/EquityBot/PlutarchPages/blob/main/docs/contributors.md): how the About window credits contributors.
+- [Releasing](https://github.com/EquityBot/PlutarchPages/blob/main/docs/releasing.md): the release workflow.
+- [Attribution](https://github.com/EquityBot/PlutarchPages/blob/main/ATTRIBUTION.md): every bundled asset with its author, source and licence.
+- [Agent and contributor rules](https://github.com/EquityBot/PlutarchPages/blob/main/AGENTS.md): asset, clean-room and safety rules.
+
+## Related
+
+- [EquityBot](https://github.com/EquityBot): other EquityBot tools.
+- [PdfCraft](https://github.com/storytold/pdfcraft): the upstream project.