Files
minerops/docs/CONTRIBUTING.md
T

2.2 KiB

Contributing to MinerOps

Workflow

Product decision
  -> Task specification
    -> Implementation
      -> Architecture review
        -> Focused review and fixes
          -> Commit
            -> Push

Substantial work should begin from an approved specification in docs/tasks/.

Before Starting

  1. Confirm repository, branch, working tree, and expected latest commit.
  2. Read the architecture, product, decisions, coding standards, task specification, and relevant release planning document when one exists.
  3. Confirm the current Alembic head.
  4. Report material conflicts before deviating.

Scope

Each task should implement one coherent feature. Adjacent ideas belong in later tasks rather than being bundled into the current change.

Branches and Commits

Do not force-push, rebase shared branches, amend approved commits, or mix unrelated work without explicit approval.

Use concise conventional commit messages, for example:

feat: add begin repair workflow
feat: add repair timeline read APIs
fix: restore lifecycle during repair downgrade
docs: add MinerOps coding standards

Commit only after implementation, validation, review, and file-set confirmation.

Completion Report

Report files created and modified, migrations, routes, permissions, domain behavior, test counts, validation results, risks, and final git status --short.

Architecture

Follow docs/CODING_STANDARDS.md and preserve:

Router -> Service -> Repository -> PostgreSQL

Use explicit operational APIs and immutable history.

Migrations

Validate previous head to new head, downgrade, re-upgrade, empty database through head, constraints, indexes, permission assignments, and transactional failure behavior.

Review

Review for scope creep, hidden CRUD, incorrect transactions, application-only invariants, unsafe downgrades, route shadowing, permission regressions, loss of history, N+1 queries, concurrency gaps, and accidental sensitive files.

AI-Assisted Work

AI tools must inspect the repository, follow the task, preserve conventions, report conflicts, run validation, avoid commits and pushes unless instructed, and provide a complete report. Human approval is still required.