docs(FN-1158): add comprehensive project documentation suite
- Add docs index with structured navigation and links across the new documentation set - Document onboarding and technical foundations with getting-started and architecture guides - Add detailed CLI and settings references plus feature guides for dashboard, tasks, workflow steps, missions, multi-project, and agents - Add a contributing guide and polish cross-references between docs pages for discoverability - Include dashboard screenshots for key views to provide visual context in the guides
This commit is contained in:
107
docs/contributing.md
Normal file
107
docs/contributing.md
Normal file
@@ -0,0 +1,107 @@
|
||||
# Contributing
|
||||
|
||||
[← Docs index](./README.md)
|
||||
|
||||
Thanks for contributing to Fusion.
|
||||
|
||||
## Development Setup
|
||||
|
||||
### Prerequisites
|
||||
|
||||
- Node.js (current LTS recommended)
|
||||
- pnpm (`packageManager` is pnpm)
|
||||
- Git
|
||||
- `pi` runtime/auth configured for AI features
|
||||
|
||||
### Install dependencies
|
||||
|
||||
```bash
|
||||
pnpm install
|
||||
```
|
||||
|
||||
### Build all packages
|
||||
|
||||
```bash
|
||||
pnpm build
|
||||
```
|
||||
|
||||
## Workspace Package Overview
|
||||
|
||||
| Package | Purpose |
|
||||
|---|---|
|
||||
| `@fusion/core` | Shared domain types, stores, persistence, and core utilities |
|
||||
| `@fusion/dashboard` | Express API + React UI |
|
||||
| `@fusion/engine` | Scheduling, triage, execution, merge orchestration |
|
||||
| `@fusion/tui` | Ink-based terminal UI components |
|
||||
| `@gsxdsm/fusion` | Published CLI + pi extension |
|
||||
|
||||
## Development Workflow
|
||||
|
||||
```bash
|
||||
pnpm dev # build + run CLI entrypoint in dev mode
|
||||
pnpm dev:ui # dashboard dev server only
|
||||
pnpm typecheck # workspace typechecks
|
||||
pnpm test # workspace test suite
|
||||
pnpm build # workspace builds
|
||||
```
|
||||
|
||||
## Testing Requirements
|
||||
|
||||
Use real test runs (not manual verification substitutes):
|
||||
|
||||
```bash
|
||||
pnpm test
|
||||
pnpm test:coverage
|
||||
pnpm test:coverage:core
|
||||
pnpm test:coverage:engine
|
||||
pnpm test:coverage:cli
|
||||
pnpm test:coverage:dashboard
|
||||
```
|
||||
|
||||
## Build Standalone Executables
|
||||
|
||||
Fusion supports standalone binary builds through Bun compile scripts in the CLI package.
|
||||
|
||||
```bash
|
||||
pnpm build:exe # build host-target executable
|
||||
pnpm build:exe:all # build multi-target executables
|
||||
```
|
||||
|
||||
## Release Process
|
||||
|
||||
Fusion uses Changesets + version PR workflow.
|
||||
|
||||
- See [RELEASING.md](../RELEASING.md) for release flow details.
|
||||
- For published package behavior changes, include a changeset.
|
||||
|
||||
## Code Signing
|
||||
|
||||
Release binary signing setup is documented here:
|
||||
|
||||
- [Code Signing Setup](./CODE_SIGNING.md)
|
||||
|
||||
## Git / Commit Conventions
|
||||
|
||||
Use task-ID-scoped conventional commits:
|
||||
|
||||
- `feat(FN-XXX): ...`
|
||||
- `fix(FN-XXX): ...`
|
||||
- `test(FN-XXX): ...`
|
||||
- `docs(FN-XXX): ...` (for documentation-only changes)
|
||||
|
||||
## Project Memory
|
||||
|
||||
When enabled, agents can read/write durable project memory:
|
||||
|
||||
- `.fusion/memory.md`
|
||||
|
||||
Use it for reusable patterns, constraints, and pitfalls that should persist across tasks.
|
||||
|
||||
## SQLite Test Runner Pitfall
|
||||
|
||||
When running engine tests with Vitest and `node:sqlite`, ensure the engine Vitest config uses thread pool mode:
|
||||
|
||||
- ✅ `pool: "threads"`
|
||||
- ❌ `pool: "vmThreads"`
|
||||
|
||||
`node:sqlite` fails under Vitest VM contexts; using threads avoids that failure mode.
|
||||
Reference in New Issue
Block a user