Pre-PR discipline for a public-by-default repo. What a reviewer enforces beyond CI: secrets and internal data in diffs or screenshots, docs that name their reader, and the cleaning pass where incomplete or confusing artifacts get dropped. Use before opening any PR against `gridaco/grida` or when finalizing work for review.
75
93%
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
Grida is open source. CI checks catch the mechanical failures — format, lint, typecheck, tests, typos, generated-file freshness. This skill is the extra bar a reviewer enforces because the repo is public, the threat model is public, and the audience for every artifact in a PR includes a stranger who arrived via Google.
The defaults that flip:
main, gets indexed, and becomes the example the next
contributor copies. Use draft: true, defer the PR, or just don't
ship — but don't ship half.Beyond what CI catches and what CLAUDE.md / naming / code-ts /
code-react already enforce:
// TODO(me): …, "fix later", "@username
knows" — private notes published. Either resolve, or rewrite as a
neutral TODO with a tracking issue link.links
pre-commit gate — absolute paths, ~/scratch/..., /tmp/..., and
untracked references resolve to nothing for anyone else.For bug fixes specifically, the etiology
skill is mandatory — bandaids in main become tribal knowledge that
external contributors have no access to.
The full boundary discipline lives in the
security skill — GRIDA-SEC-<id> tags, the
mandatory review before commit. Two extra OSS gates on top, both
because push = publish:
.env.local (gitignored) and fixture placeholders.If a GRIDA-SEC-<id> tag appears anywhere in your diff, the
security skill's review runs first; this skill's cleaning pass is
downstream of that.
Anything user-facing — README, docs/**, blog post, in-product copy,
the PR description itself — has an audience that doesn't share your
context.
Name the reader before writing. One sentence: "an external contributor first opening the repo," "a designer evaluating Grida vs Figma," "an agent grounding before a refactor." If you can't name the reader, the page doesn't know what it is — and that surfaces as prose that hedges, repeats, or assumes.
links skill — local-only or untracked targets
are correctness bugs in OSS, not style.draft: true is the
honest answer when a page isn't useful enough yet; shipping a
half-page because "something is better than nothing" is not. See
docs/AGENTS.md.Final pass before opening the PR. For every file touched, ask literally:
If a stranger reads this file with no context, does it help them, or does it leave a question they cannot answer?
Apply the answer:
The bias is to drop. A confusing artifact in main outlives the PR
and is the first thing the next contributor finds when they grep.
Common removals on this pass:
tmp.ts, notes.md, unnamed
fixtures, snapshots from a one-off debug run).draft: true or delete.CLAUDE.md).These are public artifacts permanently linked from the diff.
git log a useful index. "fix" is not a
commit message; neither is "updates".etiology). Feature → name the audience
and the concrete use case that pulled it in.See also: security,
links, etiology,
naming, code-ts,
code-react,
pedantic (when you want a hard critique
before opening the PR).
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.