add-comment
Skill0 starsChanged 2 months agoMITView on GitHub
This skill should be used when the user or the issue manager asks to "add a comment", "post a comment", "comment on the issue", "leave a comment", "append a comment", or "update the thread", or references EPICS_ROOT/ comments. Appends a single chronological comment to an existing issue's comments thread at EPICS_ROOT/<epic>/issues/<issue>/comments/. Per the issue-manager protocol, only the issue manager may add comments - coding and reviewer sub-agents report to the issue manager instead. Enforces comment best practices - comments are reserved for debate and updates on how the ticket is being solved, are logged chronologically (newest last), and are kept author-anonymous so humans and agents are not treated differently.
1 other project uses a version of this.
Adopted by
Most recently taken up by
- sogud/skillstheir own version, first seen Oct 13, 2026
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 1
- sogud/skills★ 1same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository6 other files it gives its agents.
- skills/AGENTS.mdAGENTS.md
- add-epicSkill
- add-issueSkill
- issue-managerSkill
- issue-subagent-orchestrationSkill
- research-project-epic-managerSkill
The file
We split this skill into the rules it gives an agent
7 rules. About 0 are common, 2 are distinctive, and 5 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 48
Use whenever a comment should be added to an existing issue - the request comes from the user or from the issue manager (the parent chat …
- Very specific: line 54
Do not use this skill to edit the issue body (ISSUE.md), resolve the issue (resolution.md), or change its status - those live in the …
- Very specific: line 69
Read references/comments-best-practices.md before writing a comment.
- Very specific: line 88
Dated: Every comment gets a timestamp (ISO YYYY-MM-DDThhmm).
- Very specific: line 103
Read the existing thread so you don't repeat or contradict it, and follow the best-practices file (it lives in this skill's references/ …
- Very specific: line 111
Write the comment as a new markdown file in comments/ (the script lives in this skill's scripts/ directory):
- Distinctive: line 158
Do still attribute *decisions and quoted statements* where the source matters for the record (e.g.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Add Comment
Append a single comment to an existing issue's chronological thread of
discussion. A comment is a dated, threaded note on how a ticket is being (or
was) solved - the equivalent of a comment on a GitHub issue. Comments live as
individual files in the issue's comments/ directory and mirror the thread
conventions users already expect on issue trackers.
Layout
Comments live alongside the issue, under the issue's comments/ dir:
<issue>/
|-- ISSUE.md # the issue (from the add-issue template)
|-- comments/ # chronological thread of comments (newest last)
| |-- 2026-07-23T0200-3rd-party-lib.md
| |-- 2026-07-23T0930-auth-retry-loop.md
| `-- ...
`-- resolution.md # how/why it was resolved (once closed)When to use this skill
Use whenever a comment should be added to an existing issue - the request comes from the user or from the issue manager (the parent chat working the issue). Examples: "note an alternative approach", "flag a discovered constraint", "log a decision reached while working the ticket", "record why an approach was abandoned", "tag a follow-up".
Do not use this skill to edit the issue body (ISSUE.md), resolve the
issue (resolution.md), or change its status - those live in the
add-issue skill's flow.
Only the issue manager adds comments
Per the tracker's issue-manager protocol (see the issue-manager skill), the
issue manager - the parent chat working the issue - is the only role that
appends to an issue's thread. Coding and reviewer sub-agents never write
comments themselves; they report their findings to the issue manager, which
records them with this skill. This keeps the thread consistent, unbiased,
and owned by the same role that owns the issue state.
Best practices (must read)
Read references/comments-best-practices.md before writing a comment. The
non-negotiable rules:
- Comments are for debating how to solve the ticket - progress reports, decisions, trade-off discussions, open questions, dead-ends. They are not a log of task chatter about the issue tracker itself. If the comment is not about solving the ticket, don't post it.
- Anonymous - never sign as a user or agent. Comments use a stable,
shared directory-ish tag (
**Agent**) rather than any human handle, agent name, or model. This removes bias between who (human vs agent) commented. Never write@firstName-style human names in the**@author**field; see step 4. - Chronological, append-only. New comments are appended at the end of the thread (newest last). Never rewrite or reorder historical comments.
- Status is tracked in Metadata, not in comments. Status changes and resolution happen in ISSUE.md / resolution.md. Comments capture the narrative around those changes, not the change itself.
- One comment = one point. Split distinct topics into separate comments so threads stay reviewable.
- Dated. Every comment gets a timestamp (ISO
YYYY-MM-DDThhmm). This keeps the thread ordered and unambiguous.
Procedure
- Resolve the issue dir and confirm it has a
comments/directory:
The issue must already exist (see theissue_dir=EPICS_ROOT/<epic>/issues/<issue> if [ ! -f "$issue_dir/ISSUE.md" ]; then echo "error: issue '<issue>' not found under epic '<epic>'" >&2; exit 1 fi mkdir -p "$issue_dir/comments"add-issueskill). - Read the existing thread so you don't repeat or contradict it, and follow
the best-practices file (it lives in this skill's
references/directory - the skill loader provides the skill's base path when the skill is loaded):cat <skill-dir>/references/comments-best-practices.md ls "$issue_dir/comments" Write the comment as a new markdown file in
comments/(the script lives in this skill'sscripts/directory):python3 <skill-dir>/scripts/add-comment.py \ "<epic>" "<issue>" "<Comment body text>" \ [--ts 'YYYY-MM-DDThh:mm'] [--kind <kind>] \ [--summary "<one-line summary>"] \ [--context "<context text>"] \ [--references "<references text>"]The script slugifies the body into a
YYYY-MM-DDTHHMM-<slug>.mdfilename, stamps it with the timestamp, writes the comment file, and returns its path. The generated file contains only real content: it always has the# <timestamp> -- <kind>heading and the anonymous**Agent**: <body>line, and each optional piece appears only when its flag is given - omitted flags leave no empty header and no instructional prose behind:--summary- rendered as a> <summary>blockquote directly under the heading.--context- rendered as a## Contextsection after the**Agent**line.--references- rendered as a## Referencessection at the end.
The content follows the
assets/comment.template.mdskeleton and the anonymity rules in the best practices file.The script resolves the issue directory from EPICS_ROOT/
<epic>:python3 <skill-dir>/scripts/add-comment.py \ "<epic>" "<issue>" "<Comment body text>"- Verify:
cat EPICS_ROOT/<epic>/issues/<issue>/comments/<newest-comment>.md ls -1 EPICS_ROOT/<epic>/issues/<issue>/comments
Comment identity
Comments are anonymous - they use a stable, shared tag (**Agent**)
instead of any human or agent identity. Do not include the name of the
person, the agent, the model, or the tool that wrote the comment. This is
deliberate: when readers see a comment, they should focus on the content, not
on whether it came from a human or an agent, which removes bias in how the
comment is weighed.
Do still attribute decisions and quoted statements where the source matters for the record (e.g. "per the maintainer, we will drop TLS 1.1") - you may refer to who made a decision, just do not tag the comment as authored by them.
Additional Resources
references/comments-best-practices.md- the comment guidelines (when to comment, what to include, tone, anonymity, threading).assets/comment.template.md- the comment skeleton theadd-commentscript fills in. The heading and the**Agent**line are always rendered; the> {summary}blockquote, the## Contextsection, and the## Referencessection are rendered only when the matching--summary/--context/--referencesflag is given (otherwise the whole section, header included, is stripped from the output).scripts/add-comment.py- helper that appends the comment file with a timestamp and returns its path.
Related skills
add-issue- creates the issue (and itscomments/dir).add-epic- creates the epic that scopes issues.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

