This repository builds an LLM-friendly knowledge base skill from ProcessWire core PHPDoc and official guides. Content is extracted as Markdown, text is preserved verbatim where possible, #pw-* directives are treated as metadata, and #pw-internal / @internal items are excluded.
docs/api-core/— Core-only build (recommended for LLMs)docs/api-full/— Full build (includes modules)docs/documentation/— Extracted official docs as Markdown (summaries + cheatsheets)docs/blog-posts/— Extracted ProcessWire blog posts as Markdowndocs/_hookable.json— Global hookable index (core + full)docs/_tasks.json— Tasks map (task → relevant classes/methods)
Each class/file is chunked into:
index.mdgroup-<name>.mdmethod-<name>.md/const-<name>.md_manifest.jsonfor retrieval_search.jsonfor compact lookup_hookable.jsonfor hookable method lookup
To use the guide extraction scripts, install the Python dependencies:
# Optional: Create a virtual environment
python3 -m venv venv
source venv/bin/activate
# Install dependencies
pip install -r requirements.txtpython3 src/update_docs.pyThis will:
- Build
docs/api-coreanddocs/api-fullfromsources/processwire - Build
docs/documentationanddocs/blog-postsfromsources/docs-html - Build
docs/_tasks.json
Downloads happen only if sources are missing. Use python3 src/update_docs.py --fetch to refresh.
To pick the ProcessWire branch:
python3 src/update_docs.py --branch dev
python3 src/update_docs.py --branch masterGenerate a ProcessWire+date release tag (e.g. pw-3.0.255-2026-02-09):
python3 scripts/make_release_tag.pyThe docs build writes docs/_processwire_version.json, which is used by the release workflow.
Use the Actions → Release workflow and click Run workflow. You can optionally provide a date (YYYY-MM-DD). The workflow will tag the release and attach a ZIP with docs/, SKILL.md, and scripts.
python3 src/cache_docs.pyThis will:
- Download the ProcessWire guides from
sources/urls.txt - Store HTML under
sources/docs-html/with an_index.jsonmanifest
Then build the guides (Markdown):
python3 src/build_guides.py- HTMLPurifier-related docs are skipped.
- Sources are not committed (see
.gitignore).
This repository is licensed under the Mozilla Public License 2.0 (MPL-2.0). Documentation and blog content extracted from processwire.com remain subject to their original terms.
Improvement suggestions, experience reports, and PRs are welcome.