Project guidance for AI assistants
Documentation philosophy
The git log is the historical record. The docs are implementation-ready, not a paper trail.
When editing or maintaining docs in this repo (especially the G6 dev-set under docs/development/), follow these rules:
-
No dated “fixed/resolved/verified on YYYY-MM-DD” parentheticals in spec body. The commit that landed the change already records who, when, and why. If a reader needs that audit trail, they run
git blameorgit log <file>. -
No strike-through “
old text— Fixed YYYY-MM-DD” entries in spec or open-issues files. Once an issue is resolved, delete the entry entirely. The git log preserves the resolved-issue text and the resolution; the doc-as-of-today does not need to carry that load. -
No “Prior spec said X; that was wrong” historical notes inside the spec body. State the current truth. The diff log shows what changed.
-
No “History & Reconciliation” sections unless they carry forward-looking information (e.g. unresolved migration decisions). Pure audit-trail prose belongs in commit messages.
-
TODOs and known limitations DO belong in the doc — they’re forward-looking. Examples: “UNTESTED end-to-end pending firmware bring-up”, “Draft — design-review needed”, “Open Questions / TBDs” sections with currently open items only.
-
Open-issues meta-docs (like
docs/development/g6_docs-open-issues.md) should contain only genuinely open items. Resolved items get deleted. When the list is empty, delete the file. -
Status banners at the top of spec files are OK: “Status: Draft / Specified / Teaser / Stub” with the dimension that’s load-bearing for implementers. No “Last reviewed: …” dates —
git log -1 <file>answers that. -
Provenance lines (“Source: G6 panels protocol v1 proposal, Google Doc XYZ”) are OK because the implementer benefits from knowing where the content came from for further context.
-
Cross-references between docs (and between docs and code) should be sharp file:line links, not narrative descriptions of what was done.
The goal: a fresh reader (or a future LLM session) can open any spec doc and have everything they need to implement against it, with zero archeology required.
Repo layout
docs/development/— G6 development spec docs (Phase 1). Excluded from Jekyll. Will distill into 2–3 public-facing pages at Phase 2.docs/(root) — public Jekyll site pages (Phase 2 lives here).Generation 6/— production work. Contains the maDisplayTools (host MATLAB) and webDisplayTools (host JS) submodules, plus arena/panel hardware submodules.Generation 2..5/— historical generations. Treat as read-only references..codex-review/,.kicad-review/— scratch dirs for review-skill artifacts. Gitignored.
Submodules
- The G6 hardware repos (
Generation 6/Arena,Generation 6/Panels,Generation 6/Hardware) use SSH URLs and may not initialize cleanly without SSH host-key trust set up. Thekicad-design-reviewskill can pull from GitHub directly viagh apias a workaround. - The
maDisplayToolsandwebDisplayToolssubmodules use HTTPS and initialize fine. - When committing changes that touch submodules: commit the submodule first (in its own repo), then commit the parent with the submodule pointer bump in the same commit as any related parent-repo edits.