Contributing
Pi Sych is alpha software and was developed with substantial AI assistance. That makes review more important, not less: inspect the source, tests, package contents, and claims in every proposed change.
Issues
A useful issue answers four questions:
- What were you trying to do?
- What did you expect?
- What happened instead, including the command or human command used?
- What environment, package version, and reproducible evidence can you share?
For a status or synchronization problem, include the relevant
sanitized PROJECT.md/SYNC.json shape and
distinguish changed content from your interpretation of that change.
Never attach credentials, provider tokens, private model catalogs, or
sensitive project material.
Pull requests
Work directly on main only when that is the established
local convention; otherwise use a focused branch. Keep each PR
reviewable and truthful about what was checked. Explain the user-facing
behavior, the mechanical invariant, the regression test, and any known
limitations.
Before requesting review, identify the affected row in the public contract, whether an existing documented use needs migration, and the justified SemVer level. Then run:
make verifyUse deterministic temporary fixtures for process and filesystem tests. Use live model tests only when they add evidence that deterministic tests cannot provide, and report their cost and limitations. Do not alter remotes, rewrite shared history, delete branches, or publish from a contributor change without explicit authorization.
Documentation contributions
Write general documentation for users: begin with the task they want to complete, state prerequisites, and show a small working example. Write supervisor-facing sections for model-visible contracts, boundaries, and failure handling. Write developer documentation for contributors other than the owner: explain the reasoning needed to file issues, make PRs, run checks, and understand limits.
Prefer accessible headings, meaningful link text, short paragraphs, concrete commands, and plain language. Be engaging enough to make the risk boundary memorable, but never use confidence or drama to conceal an unverified claim.
Releases
Most contributions do not need release work. When a maintainer
requests one, apply the public-contract
release rules, prepare a focused changelog entry, verify the next
version from Git tags and package metadata rather than trusting a stale
document, and run the complete documented gate. Inspect
npm pack --dry-run so the package contains only intended
public files.
Maintainers create the signed release commit and annotated
v<version> tag after explicit authorization. The
GitLab tag pipeline reruns checks and publishes the matching npm version
with provenance through the project’s configured credentials.
Contributors do not need an npm token or publish directly.