107 lines
3.0 KiB
Markdown
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.
|