This repo is hosted on GitHub (git@github.com:kevinpinscoe/vermilian.git) and is a solo personal project. The working pattern is:
- Design, spec, ADR, docs, and one-off fixes: commit directly to
main. All commits are SSH-signed (commit.gpgsign = true); unsigned commits should not land onmain. - Substantive feature implementation (Phase 2+) and anything touching
app/src/: use a branch from the table below and open a PR for review before merging, even when reviewing your own work — the PR gives a checkpoint to read the diff in one view and run CI before merging. - AI-generated content from Claude Code is committed with
Co-Authored-By: Claude Opus <noreply@anthropic.com>(or the appropriate model name) in the trailer. The same direct-to-mainvs. branch-and-PR rule applies based on what the AI changed, not who wrote it.
Steps for branch-and-PR work:
- Create a branch from
mainusing the naming convention below. - Add or modify files.
- Validate any diagrams render correctly (see below).
- Open a PR; fill in all sections of the template.
- Self-review the diff before merging.
| Type | Pattern | Example |
|---|---|---|
| Architecture diagram | design/arch-<topic> |
design/arch-api-layer |
| UI wireframe | design/ui-<screen> |
design/ui-task-list |
| ADR | adr/<number>-<slug> |
adr/0002-state-management |
| Requirements / specs | spec/<feature-slug> |
spec/task-list |
| Feature implementation | feat/<feature-slug> |
feat/task-list |
| Bug fix | fix/<short-description> |
fix/token-refresh |
| Phase 0 env / tooling | phase0/<step> |
phase0/node-setup |
- D2 files:
<name>.d2 - Mermaid files:
<name>.mmd - Place architecture diagrams in
docs/architecture/, wireframes indocs/design/
POST the raw diagram source to your Kroki instance:
# D2
curl -s -X POST https://<kroki-host>/d2 \
-H 'Content-Type: text/plain' \
--data-binary @path/to/diagram.d2 -o out.svg
# Mermaid
curl -s -X POST https://<kroki-host>/mermaid \
-H 'Content-Type: text/plain' \
--data-binary @path/to/diagram.mmd -o out.svgEmbed in a wiki.js page using fenced code blocks with the Kroki plugin active:
```kroki
d2
<paste D2 source here>
```
```kroki
mermaid
<paste Mermaid source here>
```
Native Mermaid blocks also work if the Mermaid module is enabled in wiki.js:
```mermaid
<paste Mermaid source here>
```
Claude Code is used to generate and iterate on design artifacts. When a PR contains AI-generated content, note the scope in the PR description under the AI assistance section of the template. This keeps the design rationale traceable.