Doctrine for drafting and keeping working-group docs under `docs/wg/**` — RFC/RFD specs and findings/research/glossary. A WG doc is a language-agnostic, code-agnostic study of a domain: it argues *why* and defines *what*, never *how in our code*. Use when writing or editing anything under `docs/wg/`, an RFC/RFD, a spec, a design note, a glossary, or research findings — including "write up the design", "document the spec", or "capture what we learned". Not for plans/TODOs (untracked `*.plan.md`), user docs, or SDK API refs — use `docs` to route those.
74
92%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Working-group docs are where Grida reasons about a problem before and above any one implementation. A good WG doc could be handed to someone rebuilding the feature in a different language, on a different stack, in a different decade, and still be the right starting point. That is the bar.
The reason WG docs are code-agnostic is not stylistic. Code moves; a file path or a function name is stale within months, and a doc anchored to it rots into a lie. A doc anchored to the domain — the problem, the spec, the why — stays true as long as the problem does. You are writing the thing that outlives the code.
This skill is the doctrine. Operational mechanics (frontmatter,
format: md, draft/unlisted/doc_tasks, the sync model) live in
docs/AGENTS.md — read it once. For reading
the WG tree before you edit, use grounding.
A WG doc is almost always one of these. Name which before you draft — they have different shapes.
A specification of what a feature or system is and why it is that way. Spec-rich. It defines vocabulary, states constraints and invariants, and argues the design tradeoffs. It reads like a standards document, not like a code comment.
Grounded, concise domain knowledge — what is true about the problem space. A glossary that pins down vocabulary; findings that record what a study established; research that surveys how the domain is understood.
The dedicated upstream-survey subtree is the engine repo's
docs/wg/research/**(github.com/gridaco/nothing), and it has its own stricter rules (pure survey, Grida absent from the body). When writing there, useresearch— it governs that subtree specifically. This skill governs the broader WG surface.
Name the genre — and don't let one wear another's costume. A cluster also collects legitimate non-spec artifacts: methodology, a decision record, an inventory, an RFD (a design proposal still under discussion). Each is fine — but it must say what it is. An inventory or a decision-memo dressed as a normative spec, numbered with "contracts" it cannot enforce, misleads everyone who tries to conform to it. If a doc is not a model, label it and drop the costume.
These are not style nits — each one is the doc rotting or pointing the reader wrong:
docs/wg/research/** under research.These do not belong under docs/wg/ in any form. They are a different
kind of artifact:
*.plan.md files, which are
gitignored on purpose (.gitignore) — they are
working scratch, not committed knowledge. A plan is about the work; a
WG doc is about the thing._history/ folder marked unlisted: true (see
docs/AGENTS.md), never in the live spec.docs/ folder in
the package or crate, next to what it binds), not under docs/wg. The
WG tree stays code-agnostic; the binding lives where it can name files
honestly and move with them.The throughline: a WG doc states what is true and what is intended, in domain terms, for a reader who arrives cold. Anything that is about the work rather than about the thing is a different artifact.
Where a doc lives is a design decision, not filing — and the WG tree only stays honest as it grows if three rules hold.
canvas is the honest home. (See naming.)docs/wg/platform/,
docs/wg/ai/, docs/wg/desktop/, and the product-side feat-* clusters
(feat-editor, feat-fig, feat-slides, feat-svg-editor). Put the doc
in the cluster that owns its topic; create a new feat-<topic>/ cluster
when none fits (consult naming for the cluster name).https://github.com/gridaco/nothing/tree/main/docs/wg (canvas, format,
research, and the engine feat-* clusters). A doc about the engine domain
does not get a new grida-side cluster.index.md hub. When you add a doc, update the
hub so the cluster stays navigable — an orphaned doc is an unfindable
doc.docs/AGENTS.md):
title, a description, tags: [internal, wg, <topic>…] drawn from
the controlled vocabulary in docs/tags.yml,
and format: md for plain-Markdown pages (the MDX-safety opt-out).links skill: relative within
/docs, GitHub-absolute for anything outside /docs, universal /_/
routes for "open in the product."crates/,
editor/, packages/. Each match must justify itself — usually by
being lifted to a domain-level statement.research/.TODO, plan fragment, or "we decided on "? Remove it —
it belongs in a plan, an issue, or _history/.index.md?docs (the family router — start there if unsure this
is even a WG doc), research (the research/
upstream-survey subtree), grounding (read and
reconcile before editing), links,
naming (cluster and concept names).
Operational mechanics: docs/AGENTS.md.
2e0d276
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.