Browse documentation

Contributing to PatchCairn

PatchCairn is developed by Michael. Contributions should make maintenance clearer while preserving evidence, authority, privacy, and recovery boundaries.

On this page
On this page

Start with a focused change

Read AGENTS.md, the security contract, communication guidance, and the affected reference. Explain the concrete problem and intended behavior. Avoid combining a wording fix with unrelated runtime changes.

Use the hosting repository's issue or pull-request facilities when available. Keep account destinations and contact addresses out of reusable source. Publication does not imply a license; review actual license terms and maintainer expectations before submitting material.

Protect privacy

Use fictional data for examples, tests, screenshots, and reviews. Do not attach real inventories, logs, usernames, hostnames, private paths, credentials, approvals, or backup contents. Never open a secret just to redact it. Follow SECURITY.md for suspected defects.

All generated fixtures, reports, previews, downloads, and build files belong under the executing source's work/ directory. Source and site exports use exact positive lists. A .gitignore does not establish that an export or reachable Git history is safe.

Preserve the workflow contract

Read the workflow engine, service integration, storage and backup API, and diagnostic API. The service connects exact reviewed actions to fixed adapters; it never grants approval itself. Reference the shared official tool catalog instead of duplicating changing metadata.

Verify what the change affects

Use meaningful fictional tests for affected behavior and its safety boundary. Never use live inventory, repairs, installations, host cleanup, or schedule creation as development tests. Record actual runtime, OS, filesystem, outcomes, and limits. Mocked tests, WSL, native execution, and hosted CI provide different evidence.

For the website, use an existing Python 3.12+:

python -I -S -B tests/test_site.py
python -I -S -B scripts/build_site.py --output work/site/preview

The builder uses the standard library, publishes a fixed public source list, and preserves approved PNG bytes. It rejects unsafe paths, local-file URLs, unexpected output, and changed managed files. Open generated index.html; check narrow and wide layouts, keyboard navigation, contrast, guide links, and offline use. Keep the site as documentation, with no real records or operating controls.

Prepare a reviewable contribution

Describe the problem, resulting behavior, relevant verification, and material limits. Explain changes to permissions or public output. Runtime and safety changes need independent compatibility/data and security/evidence reviews.

Do not change the selected logo, public identity, license, destination, or publication as part of an unrelated fix. See GitHub setup and UTC publication for the separate publication review.

Developed by Michael. Private session records belong locally under work/; this public guide contains no live computer records.