Skip to content

Set up contribution infrastructure (CONTRIBUTING, CI, templates, commitlint) #172

Description

@AlexMost

Context

Currently the preversion hook (build && test) runs only locally — nothing is enforced on CI, and external PRs are not validated automatically. CONTRIBUTING.md is missing, so newcomers have to reverse-engineer how to run tests and what commit style to use.

This depends on a separate decision on release & commit conventions for the ttag ecosystem (Conventional Commits + tool choice between release-please and changesets).

Scope

  • CONTRIBUTING.md at the repo root:
    • Dev setup (npm install, Node version from engines)
    • How to run tests, lint, build
    • Commit message format (Conventional Commits)
    • PR checklist (tests, lint, npm run readme after command changes)
    • Release flow
    • Code of Conduct (standard Contributor Covenant)
  • .github/PULL_REQUEST_TEMPLATE.md — minimal (description, related issue, checklist)
  • .github/ISSUE_TEMPLATE/ — separate templates for bug / feature / question. Bug requires: version, minimal repro, expected vs actual behavior
  • .github/workflows/ci.yml — on push/PR: install + lint + test + build. Node version matrix matching engines
  • .github/workflows/release.ymlrelease-please or changesets (per ecosystem decision)
  • commitlint + husky commit-msg hook for locally-enforced Conventional Commits
  • If we go with release-please/changesets, adjust preversion/prepublish flow to avoid duplication with CI

Out of scope

  • Code of Conduct enforcement — standard Contributor Covenant copy-paste is enough for a personal-org project
  • CODEOWNERS / branch protection rules — separate task

Definition of Done

  • CONTRIBUTING.md merged and linked from README
  • PR/issue templates show up when creating new PRs/issues
  • CI workflow green on main and on a test PR
  • Release workflow set up and tested (or consciously deferred and documented why)
  • commitlint blocks invalid commits locally
  • Content aligned with the parallel work in ttag and msgai repos

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions