Files
kandev/docs/public/contributing.md
T
José Almeida 2549704bc1 docs: separate user and contributor documentation paths (#1729)
* docs: expand public user and contributor guides

* docs: address public guide review feedback

* docs: align web e2e coverage guidance

* test: cover collapsed docs references

* fix: validate shortcut docs references

* fix: parse balanced docs links

* fix: handle indented docs code blocks
2026-07-16 15:13:21 +01:00

3.8 KiB

title, description
title description
Contributing to Kandev Set up the repository, choose the right change boundary, run checks, update public docs, and prepare a reviewable pull request.

Contributing to Kandev

Kandev is a Go backend, Vite/React web application, Node launcher, Tauri desktop shell, and a collection of runtime helpers. Start by understanding the user-visible behavior and the ownership boundary of the subsystem you intend to change.

Set up the repository

The pinned toolchain is defined in mise.toml: Node 24, pnpm 9.15.9, Go 1.26.0, and supporting tools.

git clone https://github.com/kdlbs/kandev.git
cd kandev
make bootstrap

For browser end-to-end work, also run:

make bootstrap-e2e

make bootstrap installs the pinned tools when needed, installs workspace dependencies, and configures repository hooks. Run make doctor when local and CI behavior disagree.

Start the development application

make dev

This starts the Go backend and Vite web development server with automatic port selection. The terminal output shows the actual URLs. Use make dev-backend or make dev-web when isolating one side.

The production-shaped local path is:

make build
make start

Find the right layer

Change Start in
Task, workflow, repository, integration, persistence, or API behavior apps/backend/internal/<domain>/
Agent process, ACP, MCP, terminal, Git, or remote runtime behavior apps/backend/internal/agent/, agentctl/, or the executor package
User interface, state, routing, or browser API calls apps/web/
CLI launch/install behavior apps/cli/ and apps/backend/internal/launcher/
Desktop shell behavior apps/desktop/
Public user documentation docs/public/
CI/release behavior .github/workflows/ and scripts/

Read the nearest tests and existing domain types before adding a new abstraction. Prefer an established handler/service/repository or API/state/component path over a parallel framework.

Develop with focused checks

During iteration, run the narrowest relevant command. Before opening a PR, run:

make fmt
make typecheck
make test
make lint

Any change under apps/web/ must add or update Playwright coverage in apps/web/e2e/ and run make test-e2e. See Testing for targeted commands and fixture rules.

Update public behavior and docs together

If a change affects commands, configuration, settings, workflows, executors, integrations, APIs, screenshots, status language, or user-facing terminology, update docs/public/** in the same PR.

When adding a page:

  1. create a flat, stable Markdown slug in docs/public/;
  2. add title and description frontmatter;
  3. add the slug once to docs/public/meta.json;
  4. link it from the relevant overview and related pages;
  5. run node scripts/validate-public-docs.mjs.

The full publication contract is in the docs contribution guide.

Prepare the pull request

  • Keep one logical change per PR.
  • Explain user impact and the technical boundary.
  • List exact automated and manual verification.
  • Include screenshots or a short recording for UI behavior.
  • Call out migrations, new credentials, security changes, or compatibility risks.
  • Do not mix generated artifacts, local databases, recordings, or unrelated formatting into the diff.
  • Understand and be able to explain any agent-generated code you submit.

The root CONTRIBUTING.md contains the community and licensing policy. By contributing, you agree to the repository's AGPL-3.0 license.

Next guides