archived/skills/annotations/SKILL.md
Scan and process inline HTML comments for human-agent collaboration. Finds <!-- @nic: --> or <!-- @ns: --> comments and responds with dated <!-- @claude: --> replies. Works on markdown, Python, and other text files.
npx skillsauth add nicsuzor/academicops annotationsInstall 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.
Taxonomy note: This skill provides domain expertise (HOW) for processing inline HTML comments for human-agent collaboration. See [[TAXONOMY.md]] for the skill/workflow distinction.
Process inline HTML comments for asynchronous human-agent collaboration across file types.
| Type | Extension | Notes |
| ---------- | ------------------------------ | -------------------------------------------------------------------------------- |
| Markdown | .md | Primary use case. HTML comments invisible in rendered output. |
| Python | .py | Use # <!-- @ns: comment --> format. HTML comments work but are unconventional. |
| Other text | .txt, .toml, .yaml, etc. | Any file the agent can read/edit. Use appropriate comment syntax. |
Unsupported: Binary files, images, compiled code.
Human comments: <!-- @nic: comment --> or <!-- @ns: comment --> or <!-- NS: comment --> or '<!-- @nicsuzor: comment -->'
Agent responses: <!-- @claude YYYY-MM-DD: response -->
Comments use HTML syntax for universal markdown compatibility (GitHub, Obsidian, VS Code, etc.). They render as invisible in all standard markdown viewers.
Find all pending human annotations that need response.
<!-- @nicsuzor: use 'rg' instead of grep, run case insensitive, and make the '@' optional --> <!-- @claude 2026-01-12: Done. Updated pattern to use Grep tool (which uses rg), added -i for case insensitive, and made @ optional in the pattern. -->Grep(pattern="<!--\\s*@?(nic|ns|nicsuzor):", path="$ACA_DATA", output_mode="content", -C=2, -i=true)
Output: List of files with pending comments, showing context.
Process annotations in a specific file:
<!-- @nicsuzor: ensure that comments are added to tasks. Once they are fully captured, they can be deleted from the source file. --> <!-- @claude 2026-01-12: Done. Updated workflow to create tasks for actionable annotations before responding. See step 3 below. --> <!-- @claude 2026-01-24: Updated respond workflow to include step 4: capture annotation threads to bd (backup/documentation) before deletion to ensure full context is preserved. --><!-- @nic: or <!-- @ns: comments<!-- @claude response:
<!-- @claude YYYY-MM-DD: response -->Remove resolved annotation threads (both comment and response) after user confirms resolution.
Before:
The court held that platforms must provide notice. <!-- @ns: check if this applies post-DSA -->
After:
The court held that platforms must provide notice. <!-- @ns: check if this applies post-DSA -->
<!-- @claude 2026-01-11: This holding predates DSA. Art. 17 now requires explicit notice with reasoning. Your original cite remains valid for pre-2024 cases. -->
| Pattern | Matches |
| -------------------------------------------- | --------------- |
| <!--\s*@?(nic\|ns): | Human comments |
| <!--\s*@claude\s+\d{4}-\d{2}-\d{2}: | Agent responses |
| Human comment NOT followed by agent response | Pending items |
This skill integrates with daily workflow:
scan $ACA_DATA to find pending annotations<!-- @claude 2026-01-11: -->```markdown code blocks, NOT as bare HTML comments. A bare <!-- @ns: --> in ANY file is a real annotation.<!-- @claude --> reply<!-- @claude --> response MUST include the task ID. Format: <!-- @claude YYYY-MM-DD: Task created: task-id. [brief description] -->$ACA_DATA and $AOPS that the agent can read and edit.md), Python (.py), config files (.toml, .yaml), and other text filesdata-ai
Canonical session close — commit, push, PR, release_task, reflection blocks, handover. Use /dump for emergency bail (no commit/PR/reflection).
data-ai
Emergency session bail — fast resume task + short handover, no commit/PR/reflection. For when you (or the user) need a clean context now. Use /end-session for canonical close.
data-ai
Daily note lifecycle — compose and maintain a factual daily note. Reports the state of the day; does not prioritise or recommend. SSoT for daily note structure.
testing
Launder supervisor/worker task-log output into a Nic-facing narrative — what happened, where things are headed, and what (if anything) is genuinely his to decide. Never relays raw process detail (worker IDs, thread pointers, log paths) or verbatim task-log stream-of-consciousness.