Skip to content

Latest commit

 

History

History
49 lines (27 loc) · 4.81 KB

CONTRIBUTING.md

File metadata and controls

49 lines (27 loc) · 4.81 KB

Contribute to Open Pstack

Arjit Jaiswal maintains this distribution. It is not an official Cursor, OpenAI, Anthropic, xAI, Cognition, Google, or OpenCode product. Report problems with the packaged port and propose changes in this repository's issues. Search existing issues first. Pull requests for documentation and maintenance tooling are welcome.

Report a problem

Include:

  • the installed Pstack version and the source your installation follows (main, a tag, or a commit);
  • the parent app and its version;
  • the provider CLI and its version, if a worker is involved;
  • the requested model and effort;
  • the steps that reproduce the problem, what you expected, and the error you saw.

Remove credentials and private prompts. Do not attach authentication tokens or raw conversation exports.

To test an unreleased change, use a separate installation or a disposable workspace, and keep a copy of your model configuration.

UPSTREAM.md explains how to review pending Cursor changes.

Change the repository

Read AGENTS.md and UPSTREAM.md before editing. Keep one shared skill tree for Codex and Claude Code. Preserve upstream licenses and credit. Record intentional differences from Cursor in the decision ledger. Each fact has one owner in the documentation ownership map. Update that owner and link to it from other pages.

main requires pull requests and a passing verify check from GitHub Actions on a branch that is up to date with main. Repository administrators can bypass those requirements, including pushing directly to main or merging without updating the PR branch first. The Allow force pushes and Allow deletions settings remain disabled. External approvals are not required. The installed-parent evidence under Validate a change is maintainer policy, not a branch-protection gate.

Development tools

Bun runs the packaged TypeScript tools and tests. Node runs check-plan.mjs; Python 3 runs repository maintenance scripts and their tests. Install dependencies with bun install --frozen-lockfile in plugins/pstack/skills/poteto-mode/scripts/.

Statechart has separate dependencies in plugins/pstack/skills/statechart/scripts/. Run bun install --frozen-lockfile, bun run typecheck, and bun run test there. Live engine tests need Java and the pinned TLC jar named in .github/workflows/ci.yml; set JAVA and TLA2TOOLS to their paths. Engine tests report skips when the jar is unavailable.

GitHub workflows need an authenticated gh CLI. The worktree audit additionally uses jq and rg. Install and authenticate provider CLIs only for the worker routes you test.

Skill-authoring workflows in Claude Code use plugin-dev:skill-development. Install that optional plugin with /plugin marketplace add anthropics/claude-plugins-official, then /plugin install plugin-dev@claude-plugins-official. It is not declared as a hard dependency because local plugin-directory loading cannot resolve cross-marketplace dependencies. See the original dependency change.

Validate a change

Run the checks in .github/workflows/ci.yml: Bun tests, strict typechecking, maintenance tests, manifest parsing, documentation checks, and static invariants. Run claude plugin validate ./plugins/pstack for plugin validation and python3 scripts/check-docs.py for the documentation checks.

For changes to packaged skills, agents, manifests, or runner behavior, install the exact candidate and exercise the changed behavior from every affected parent app. Record the installed version, action, observed result, and limits in the pull request. Keep the pull request in draft until that evidence is available. The verify-open-pstack skill has recipes for each feature.

For documentation and maintenance tooling that leave the plugin tree unchanged, show that the tree is unchanged and demonstrate the changed command or workflow. Do not claim provider validation that was not needed or not performed.

tests/skill-collision-repro.sh checks skill metadata, version mirrors, model aliases, and default-panel consistency. Its behavioral mode checks real Claude Code skill invocation.

Keep test results, transcripts, and generated proposal files outside the checkout. Put validation evidence in the pull request.

Keep tests and proposal validation separate from jobs with write permissions. New automation must handle retries without overwriting human edits or claiming that unreviewed content has shipped.