Skip to content
This repository was archived by the owner on May 31, 2026. It is now read-only.

Latest commit

 

History

History
65 lines (42 loc) · 2.47 KB

File metadata and controls

65 lines (42 loc) · 2.47 KB

Contributing to TestingKit

Thanks for your interest in contributing to TestingKit, part of the Phenotype ecosystem.

AgilePlus spec mandate

All non-trivial work in this organization is tracked in AgilePlus. Before opening a PR for a feature or substantive change:

  1. Check the AgilePlus spec registry for an existing spec.
  2. If none exists, open one (agileplus specify --title "<feature>" --description "<desc>") and link it from your PR description.
  3. Trivial fixes (typos, dependency bumps, doc tweaks) do not require a spec.

Build & test

This repository is polyglot. Build the language(s) you are touching:

git clone https://github.com/KooshaPari/TestingKit.git
cd TestingKit

# Rust  (rust/ subtree)
( cd rust   && cargo build --workspace && cargo test --workspace && cargo clippy -- -D warnings )

# Go    (go/ subtree)
( cd go     && go build ./... && go test ./... && go vet ./... )

# Python (python/ subtree)
( cd python && uv sync && uv run pytest && uv run ruff check . )

Branch naming

Use kebab-case prefixed by intent:

  • feat/<scope>-<short-desc> — new feature
  • fix/<scope>-<short-desc> — bug fix
  • chore/<scope>-<short-desc> — tooling, deps, infra
  • docs/<scope>-<short-desc> — docs only
  • refactor/<scope>-<short-desc> — non-behavioral change

Commit messages

Follow Conventional Commits. Examples:

  • feat(api): add token refresh endpoint
  • fix(parser): handle empty input
  • chore(deps): bump tokio to 1.40

If a commitlint.config.* exists in the repo, it is enforced; otherwise the convention above is the floor.

Pull request expectations

  • Keep PRs focused and small; split unrelated changes.
  • Ensure the build, tests, lint, and format checks above pass locally before pushing.
  • Describe what changed and why. Link the AgilePlus spec, issue, or ADR.
  • Expect review from a maintainer; be responsive to feedback.
  • Squash-merge is the default; the PR title becomes the commit subject.

Quality gates

This repo participates in the Phenotype quality regime: zero new lint suppressions without justification, traceability to FR IDs where applicable, and 0-error CI on Linux runners. See AGENTS.md / CLAUDE.md if present for repo-specific governance.

Reporting issues

Open a GitHub issue with reproduction steps, expected vs. actual behavior, and environment details (OS, toolchain version).