skills/comment-format/SKILL.md
Conventional Comments structure for review feedback. Labels, decorations and tone. Use when writing review comments, giving code feedback or posting PR review observations. Pairs with code-review-standard for what to evaluate. Follow the user's writing voice and prose style guides for comment text.
npx skillsauth add jitsusama/agentic-harness.pi comment-formatInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
<label> [decorations]: <subject>
[discussion]
Every review comment follows this structure. The label classifies the intent, decorations indicate severity, the subject is a one-line summary and the discussion is where you explain your reasoning.
| Label | Purpose | Blocking? |
|-------|---------|-----------|
| praise | Something positive | Never |
| nitpick | Trivial preference | Never |
| suggestion | Proposed improvement | Sometimes |
| issue | Specific problem | Often |
| question | Potential concern | Sometimes |
| thought | Idea from reviewing | Never |
| todo | Small necessary change | Usually |
| note | Informational highlight | Never |
| chore | Process requirement | Sometimes |
praise at least once per review; acknowledge
things done well.issue with suggestion when possible; don't
just point out problems, offer alternatives.question when genuinely unsure, not as passive
aggression.nitpick for pure preference; be honest about it.thought for ideas that don't need action.Add parenthetical decorations after the label:
(blocking): must be resolved before merge.(non-blocking): won't prevent merge.(if-minor): resolve only if the fix is trivial.Examples:
suggestion (non-blocking): Consider extracting validation...
issue (blocking): Missing null check causes crash...
nitpick (non-blocking): Prefer const over let here...
The tone should be warm, instructional and teaching-oriented. Not just "what's wrong" but "what I think and why." Explain your reasoning, suggest alternatives and teach.
The structural format here (labels, decorations, subject/discussion) is the container; the prose inside it should follow the user's writing voice and prose style guides so the comments sound like something they would actually write.
suggestion (non-blocking): Consider using the existing
`validateInput()` helper here.
I noticed that `src/utils/validation.ts:23` already has a
validation function that handles this exact case. Using it
would keep the validation logic in one place and make it
easier to update if the rules change. The pattern used in
`src/api/users.ts:45` shows how other endpoints integrate
with it.
question (non-blocking): What happens if `prefs` is null
here?
I see the function accepts `prefs` without a null check,
but looking at the callers in `src/routes/settings.ts:30`,
it seems possible for the request body to be empty. The
existing pattern in `src/api/users.ts:12` guards against
this with an early return; it might be worth considering the
same approach here.
praise: Clean separation of concerns here.
The way validation, transformation and persistence are
handled in separate steps makes this very easy to follow
and test independently. Nice work.
issue: Use validateInput() instead.
→ Terse and demanding. No explanation of why.
question: Did you not see the existing validation helper?
→ Passive-aggressive. Implies negligence.
suggestion: This is wrong, fix it.
→ Not a suggestion, and not helpful.
Cite concrete evidence in your comments:
rg output) for patterns.add-commentWhen calling pr_review with add-comment, map the
conventional comment format to the tool's structured fields:
label: the conventional comment label.decorations: array of decorations, e.g. ["non-blocking"].subject: the subject line after the colon.discussion: the body paragraphs explaining reasoning.The extension takes care of formatting these into the conventional comment syntax when posting to GitHub.
question to make demands.development
Structure of a quest README and the documents that live under it: frontmatter shape, the four core and four optional body sections, emoji glyphs, ID format, alias notation, Cast bullets and Journey entries. Use when writing or editing a quest README, a plan, research, brief or report document under a quest. Pairs with quest-convention for choices like kind, promotion and reordering. Follow the prose-standard for voice.
tools
Operational conventions for the quest system: when to use a quest versus a subquest versus a sidequest, when to scaffold a plan or research document, how to reorder priorities, when to add optional sections, when to conclude versus retire, the resuscitate pattern. Use when driving the quest tool, deciding kind, promoting or parking work, or organising a project as quests. Pairs with quest-format for the on-disk shape.
development
Markdown structure rules: Title Case headings with their exceptions, the line-width target and its legitimate exceptions, reference-style links, fenced code blocks with language tags, tables and lists. Use when writing or editing any markdown file (README, AGENTS, docs, plans, skill files), or when adding a heading, link, table or code block. Owns markdown structure; pairs with prose-standard, which owns voice, grammar, spelling and punctuation.
tools
How to measure whether convention corrections keep recurring in the pi session logs, by category and by week. Use to record a baseline before the convention gates take effect and to re-run afterwards to confirm the recurring categories bend down. Pairs with the convention gates (pr-guardian, issue-guardian, commit-guardian, slack-integration) and the convention-context extension.