Files

107 lines
3.0 KiB
Markdown

# Contributing to Skills Vault
Thanks for taking the time to contribute.
Skills Vault is intentionally small. The best contributions usually keep that spirit: focused changes, clear reasoning, and tests or docs updates where behavior changes.
## Before You Start
Please read these first:
- [README.md](./README.md) for project scope and command overview
- [CODE_OF_CONDUCT.md](./CODE_OF_CONDUCT.md) for community expectations
- [SECURITY.md](./SECURITY.md) before reporting vulnerabilities
If you plan to make a substantial change, open an issue first so we can confirm the direction before code is written.
## Good First Contributions
Helpful contributions include:
- bug fixes with regression tests
- documentation improvements
- clearer CLI help text
- tighter error handling around manifest parsing and install planning
- focused UX improvements to backup, restore, doctor, and completion flows
## Local Setup
This project uses Bun only.
```sh
bun install --frozen-lockfile
```
Useful local commands:
```sh
bun run ./src/cli.ts --help
bun run ./src/cli.ts doctor
bun run test
bun run format
bun run format:check
bun run check
```
## Development Guidelines
- Use Bun for development and testing.
- Follow the existing TypeScript + ESM style.
- Prefer small helpers with explicit types over large, multi-purpose functions.
- Preserve the current command result shape: `exitCode`, `stdout`, `stderr`, optional `errorCode`, and optional `payload`.
- Reuse existing output helpers in `src/internal/cli` and path helpers in `src/internal/paths`.
- Keep comments sparse and high-signal.
## Tests and Verification
Run the full verification gate before opening a pull request:
```sh
bun run check
```
If you changed GitHub workflow files, also run:
```sh
bunx prettier --check ".github/**/*.yml"
```
When behavior changes, add or update tests for:
- CLI output and help text
- argument parsing
- install planning and concurrency behavior
- manifest parsing and building
- packaging expectations when publish behavior changes
Keep tests deterministic. Prefer injected dependencies and stubs over relying on caller machine state.
## Pull Requests
Please keep pull requests focused and include:
- a short explanation of the problem being solved
- the approach you took
- any user-facing CLI or docs changes
- the verification commands you ran
If a change affects command output, include an example of the new output in the PR description when practical.
## Reporting Bugs
Use the bug report issue template and include:
- the command you ran
- what you expected to happen
- what actually happened
- your OS and Bun version
- relevant output from `bunx skvlt doctor`
## Security Reports
Do not report security vulnerabilities in public issues or pull requests. Follow [SECURITY.md](./SECURITY.md) instead.
## Maintainer Expectations
This project is maintained on a best-effort basis. Reviews may take time, and not every feature request will fit the project scope. Clear, scoped proposals have the best chance of landing quickly.