Steps
- Create (or confirm) a Linear task: assignee, team label, priority, t-shirt estimate.
- Branch as feature/
-<issue#>- in the repo’s ~/repos/ clone on the Mini. - Build the change with local git identity (Hermes Agent hermes@ryevalley.co).
- Open the PR against dev (never main). Request review: Rafael always, Mehul too on frontend.
- Move the Linear task with the PR: In Progress -> In Review -> Done.
- Merge to dev ships nothing; dev -> main promotion deploys production via Vercel.
Michael’s standing rules for engineering work across Rye Valley (stated 2026-07-29).
PRs and task tracking
- Every engineering PR must be tied to a project-specific Linear task, and the Linear status must be updated as the PR progresses (In Progress -> In Review -> Done).
- Linear tasks created by agents must include: assignee (Rafael for eng work unless frontend-only, then Mehul), a team label (JOLT team has Bug/Feature/Improvement/Blocked), priority (1 Urgent / 2 High / 3 Medium / 4 Low, judged by blast radius), and an estimate (JOLT team uses t-shirt sizing, enabled 2026-07-29: XS=1 S=2 M=3 L=5 XL=8).
- Initial PRs always target
dev, never main. dev -> main promotion deploys production (Vercel deploys main). The jolt repo’s dev branch was created 2026-07-29. - Content-only changes (e.g. Lore article MDX PRs) follow their own editorial approval flow (Ben in Slack), not Linear.
- Branch naming: feature/
-<issue#>- (Linear-generated format). - Scope, stated 2026-07-30: this applies to EVERYTHING built, not just client/requested work. Any agent-built code, script, automation, or tool — whether Michael asked for it or the agent built it unprompted (e.g. a cron script, a one-off scraper, an internal dashboard) — gets a Linear task and a PR against a real git repo. No more untracked builds living only in a session transcript or a local file. If a new project doesn’t fit an existing repo, create a new repo under the RyeValley GitHub org for it (name it after the project) rather than skip tracking.
- Pick the Linear team by ownership: use the entity’s existing team if there is one (RYE, LORE, JOLT, HC, MEGA); for internal/ops tooling with no obvious owning entity, use RYE.
Linear (CONNECTED 2026-07-29)
- Workspace: ryevalley (michael@ryevalley.co key, LINEAR_API_KEY on the Mini).
- Teams: RYE (Rye Valley), LORE, JOLT, HC (Hard Calls, renamed from Founding Journey/FJ 2026-07-30), MEGA (Megaphone).
- JOLT team states: Backlog, Todo, In Progress, In Review, Done (+ Duplicate/Canceled).
- First agent-created task: JOLT-50 (blog scaffold, tied to jolt PR #29).
Vercel (CONNECTED 2026-07-29)
- VERCEL_TOKEN on the Mini. Team: megaphone-dev. Projects: lore, jolt, founding-journey, hard-calls, rye-valley-dashboard, jobs-lost, rye-valley, megaphone-io, content-to-capital.
- Merge to main = production deploy; PRs get preview deployments.
People
- Rafael, GitHub rafaelbrunotech: lead engineer, primary reviewer and QA for all PRs.
- Mehul, GitHub mehuljariwala: frontend engineer, secondary reviewer on frontend/site PRs.
- Request review from both on site PRs; Rafael’s approval is the gate.
Daily bug-hunt cron (added 2026-07-30)
Cron “RV: Daily bug hunt” on the Mini, weekdays 10am ET, rotates through 5 repos (jolt, megaphone, lore, hard-calls, hermes-ops), one per day. Finds a real bug and fixes it via the full PR workflow, or falls back to one small Linear backlog ticket if the repo is clean. Full engineering-standards doc: hermes-ops repo.
Michael correction, 2026-07-30: every task from this process MUST carry a t-shirt estimate and a specific named reviewer (never left unassigned), no exceptions except hermes-ops (documented self-review convention, no dedicated engineer yet). Also time-boxed the investigation phase after a run burned its full iteration budget reading code/tickets without ever committing to and executing a fix.
Persistent repo clones on the Mini (added 2026-07-30)
Michael: the Mac Mini is the standing workspace (“where we work from”), so every
RyeValley repo should be cloned there persistently, not re-cloned to /tmp per task.
All 13 RyeValley repos now live at ~/repos/
Standing rule for any new RyeValley repo: clone it to ~/repos/