Migration commit for the ELF-15 atomic PR. Realizes the CTO plan in ELF-13 revision 1 and ADR-0001 (Go + SQLite + stdlib net/http + SSR + SSE) and the detail choices in ADR-0002 (chi, modernc.org/sqlite, html/ template, stdlib testing, Apache-2.0). Docs: - docs/engineering/tech-stack.md rewritten for Go + SQLite + stdlib net/http + SSR + SSE. Frontend is server-rendered HTML + a little vanilla JS. Packaging is multi-stage golang -> scratch with an optional Caddy sidecar. Boring-technology principle kept. - docs/engineering/first-engineer-role.md rewritten: Go must-have (stdlib + HTTP fundamentals + SQL + GitHub), TypeScript/Next.js/ Prisma/PostgreSQL moved to nice-to-have or deferred. Tailwind and monorepo tooling explicitly deferred. - docs/engineering/onboarding.md: pnpm install / pnpm dev replaced with go test ./... and go run ./cmd/hatch. New step: read local-dev and hatch-architecture on day 1. - docs/engineering/local-dev.md (new): day-to-day commands, where things live, SQLite tips, troubleshooting. Living doc, engineer owns. - docs/engineering/hatch-architecture.md (new): component map (http ServeMux -> handler layer -> store layer; in-process SSE hub), request lifecycle (Capture / Inspect / Mock / Live update), data model (endpoints, requests), performance budget, future seams. - docs/adrs/0002-hatch-detail-stack.md (new): CTO-authored ADR closing the open choices in ADR-0001 with concrete picks, named alternatives, and a per-choice rollback path. Router: go-chi/chi. SQLite driver: modernc.org/sqlite (pure Go, no CGO). Templates: stdlib html/template + //go:embed. Tests: stdlib testing + httptest. License: Apache-2.0. Housekeeping: - README.md: drop the apps/ and packages/ layout lines (no monorepo), add local-dev and hatch-architecture pointers, fix Hatch demo to point at /healthz, switch license line from 'Proprietary' to Apache-2.0 with a LICENSE file pointer. - CONTRIBUTING.md: code-style section rewritten for Go (gofmt, go vet, internal/ for pure logic, server-rendered by default); branch example uses engineer/hatch-* matching the actual workflow. - LICENSE: full Apache-2.0 text, copyright El Foundation 2026. Per ADR-0002. - .gitignore: ignore the pre-built 'hatch' binary, bin/ (per ADR 0002 binary convention), and SQLite files (*.db, *.db-journal, *.db-wal, *.db-shm). Out of scope (handled by ELF-17 onwards, not this PR): - Storage layer implementation (Task B, ELF-17) - Capture, Inspect, Mock (Tasks 3-6) - E2E smoke test (Task 8) Foundation + this commit are the atomic PR. CI is green (go vet, go test ./... -race, docker build all pass locally; same gates the GitHub Actions workflow enforces). Co-Authored-By: Paperclip <noreply@paperclip.ing>
49 lines
1.9 KiB
Markdown
49 lines
1.9 KiB
Markdown
# Engineer Onboarding
|
||
|
||
## Before Day 1
|
||
|
||
- [ ] Access to GitHub org granted
|
||
- [ ] Access to Paperclip workspace granted
|
||
- [ ] Added to project channels / async standup
|
||
|
||
## Day 1: Context
|
||
|
||
- [ ] Read the [company charter](../company/charter.md)
|
||
- [ ] Read the [operating model](../company/operating-model.md)
|
||
- [ ] Read [ways of working](../company/ways-of-working.md)
|
||
- [ ] Read [how we decide](../company/how-we-decide.md)
|
||
- [ ] Read [CONTRIBUTING.md](../../CONTRIBUTING.md)
|
||
- [ ] Read [tech-stack.md](tech-stack.md)
|
||
- [ ] Read [local-dev.md](local-dev.md)
|
||
- [ ] Read [hatch-architecture.md](hatch-architecture.md)
|
||
- [ ] Read [ADR-0002: Hatch detail stack](adrs/0002-hatch-detail-stack.md)
|
||
- [ ] Introduce yourself in the team channel (async written standup format)
|
||
|
||
## Day 2–3: Environment
|
||
|
||
- [ ] Install Go 1.25 (or newer) — see the [Go install instructions](https://go.dev/doc/install) if you do not have it
|
||
- [ ] Verify `go version` reports 1.25 or newer
|
||
- [ ] Clone the repo
|
||
- [ ] Run `go mod download` to fetch dependencies
|
||
- [ ] Run `go test ./...` — should pass on a fresh clone
|
||
- [ ] Run `go run ./cmd/hatch` and `curl http://localhost:8080/healthz` — should return `ok`
|
||
- [ ] Run `docker compose up --build` and visit `http://localhost:8080/healthz` — should return `ok`
|
||
- [ ] Open your first PR (a README typo fix or doc improvement counts)
|
||
|
||
## Week 1: First Task
|
||
|
||
- [ ] Pick up a `good first issue` or grab a task from the backlog with CTO approval
|
||
- [ ] Follow the full task lifecycle: branch → PR → review → merge
|
||
- [ ] Shadow one code review as a reviewer (even if just observing)
|
||
|
||
## First 30 Days
|
||
|
||
- [ ] Ship at least one meaningful change to production (or equivalent if pre-launch)
|
||
- [ ] Write or update one piece of documentation
|
||
- [ ] Attend (async) one decision review or ADR discussion
|
||
- [ ] Provide feedback on the onboarding process itself
|
||
|
||
## Questions?
|
||
|
||
Ask the CTO or post in the project channel. Async-first: write it down.
|