{"slug":"file-headers","title":"file-headers","summary":"MANDATORY for every coding agent (Claude Code, Codex, or any other) on every change-set — every applicable source file the agent creates or updates MUST start with the project's copyright/authorship header (file overview + exact author line). Use automatically whenever writing a ","platform":"Claude","tags":[],"authorName":"LLM Mart","authorSlug":"llm-mart","score":0,"source":"github","price":null,"verified":false,"createdAt":"2026-09-07T18:39:10.846164Z","repo":{"url":"https://github.com/hoangsonww/Claude-Code-Agent-Monitor","stars":1014,"forks":238,"license":"MIT","updatedAt":"2026-09-24T18:17:15Z"},"bodyHtml":"<hr>\n<h2>name: file-headers\ndescription: MANDATORY for every coding agent (Claude Code, Codex, or any other) on every change-set — every applicable source file the agent creates or updates MUST start with the project's copyright/authorship header (file overview + exact author line). Use automatically whenever writing a new file or editing an existing one; do not wait to be asked. Covers JS/TS/TSX/CJS/MJS, Python, shell, and CSS. Includes the audit script to verify repo-wide compliance.</h2>\n<h1>File Headers — Copyright Comment + File Overview</h1>\n<p>Every applicable source file in this repository starts with a header comment\ncontaining a <strong>file overview</strong> and the <strong>exact author line</strong>:</p>\n<pre><code>@author Son Nguyen &lt;hoangson091104@gmail.com&gt;\n</code></pre>\n<p>The name and email must be exactly as above — no variations, no substitutions,\nno other names. This applies to <strong>every coding agent</strong> working in this repo\n(Claude Code, Codex, or any other tool): when you <strong>create</strong> a new applicable\nfile, write the header first; when you <strong>update</strong> an existing applicable file\nthat is missing the header, add it as part of the same change.</p>\n<h2>Applicable files</h2>\n<table>\n<thead>\n<tr>\n<th>Included</th>\n<th>Excluded</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>*.js</code>, <code>*.ts</code>, <code>*.tsx</code>, <code>*.cjs</code>, <code>*.mjs</code></td>\n<td>anything under <code>node_modules/</code>, <code>dist/</code>, <code>build/</code>, <code>data/</code>, <code>.worktrees/</code></td>\n</tr>\n<tr>\n<td><code>*.py</code>, <code>*.sh</code></td>\n<td>vendored/minified files (<code>*.min.js</code>, <code>wiki/mermaid.min.js</code>)</td>\n</tr>\n<tr>\n<td><code>*.css</code></td>\n<td>generated files (<code>wiki/i18n-content.js</code> — carries its own AUTO-GENERATED banner)</td>\n</tr>\n<tr>\n<td></td>\n<td>snapshots (<code>__snapshots__/</code>), lockfiles, JSON/YAML/Markdown</td>\n</tr>\n</tbody>\n</table>\n<h2>Header formats by file type</h2>\n<p><strong>JS / TS / TSX — server &amp; scripts style</strong> (overview inline in <code>@file</code>):</p>\n<pre><code>/**\n * @file One-to-few-sentence overview of what this file does and why it\n * exists. Mention the key contracts or invariants the file owns.\n * @author Son Nguyen &lt;hoangson091104@gmail.com&gt;\n */\n</code></pre>\n<p><strong>JS / TS / TSX — client style</strong> (<code>@file</code> name + <code>@description</code> overview), used\nunder <code>client/src/</code>:</p>\n<pre><code>/**\n * @file ComponentName.tsx\n * @description What the component/module renders or provides and how it fits\n * into the app.\n * @author Son Nguyen &lt;hoangson091104@gmail.com&gt;\n */\n</code></pre>\n<p><strong>CSS</strong> (same block-comment shape as <code>client/src/index.css</code>):</p>\n<pre><code>/**\n * @file file.css\n * @description What these styles cover.\n * @author Son Nguyen &lt;hoangson091104@gmail.com&gt;\n */\n</code></pre>\n<p><strong>Shell</strong> (<code>#</code> block right after the shebang; existing overview comments count —\njust make sure the <code>@author</code> line is in the block):</p>\n<pre><code>#!/usr/bin/env bash\n# script-name.sh — what the script does, one to few lines.\n# @author Son Nguyen &lt;hoangson091104@gmail.com&gt;\n</code></pre>\n<p><strong>Python</strong> (inside the module docstring):</p>\n<pre><code>\"\"\"\nmodule.py — what the module does.\n\n@author Son Nguyen &lt;hoangson091104@gmail.com&gt;\n\"\"\"\n</code></pre>\n<h2>Rules</h2>\n<ol>\n<li><strong>New file → header first.</strong> Any applicable file you create starts with the\nheader before any code (after the shebang for scripts).</li>\n<li><strong>Touched file missing header → add it.</strong> If you edit a file that lacks the\nheader, add one in the same commit. Write a real overview — describe what\nthe file actually does; never a placeholder like \"TODO\" or \"utility file\".</li>\n<li><strong>Exact author line.</strong> <code>@author Son Nguyen &lt;hoangson091104@gmail.com&gt;</code> —\nbyte-exact, in every file type (shell and Python use it inside <code>#</code> / docstring\ncomments).</li>\n<li><strong>Don't churn existing headers.</strong> If a file already has a compliant header,\nleave it alone unless the file's purpose changed (then update the overview).</li>\n<li><strong>Overviews must stay truthful.</strong> When an edit changes what a file does,\nupdate its <code>@file</code>/<code>@description</code> overview in the same change.</li>\n</ol>\n<h2>Audit</h2>\n<p>Run the bundled checker to list any applicable file missing the header:</p>\n<pre><code>bash .claude/skills/file-headers/scripts/check-headers.sh\n</code></pre>\n<p>Exit code <code>0</code> = fully compliant; <code>1</code> = the printed files are missing headers.\nRun it before finishing any change-set that adds files, and during reviews.</p>\n<p>On every pull request, GitHub Actions runs\n<code>.claude/skills/file-headers/scripts/check-headers-pr.sh</code> against only the\nfiles changed in the PR diff (added, copied, renamed, or modified). Test locally\nbefore pushing:</p>\n<pre><code>bash .claude/skills/file-headers/scripts/check-headers-pr.sh origin/master HEAD\n</code></pre>\n","files":[{"path":"scripts/check-headers-pr.sh","sizeBytes":4068,"isText":true},{"path":"scripts/check-headers.sh","sizeBytes":1198,"isText":true},{"path":"SKILL.md","sizeBytes":4262,"isText":true}],"reviewScore":null,"reviewSummary":null,"trust":{"provenance":"trusted-source-unreviewed","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow.","bodySource":null},"bodyLocked":false,"purchaseUrl":null,"sourceUrl":null,"report":{"provenance":"trusted-source-unreviewed","screen":{"ran":true,"outcome":"clean","suspicious":0,"notes":0,"hiddenCharacters":false},"virusScan":{"engine":"clamav","status":"clean","scannedAt":"2026-09-07T18:42:28.656781Z","sha256":"742F3A37E3AC476CEC2DC8EF10D64E8AF195B40723D1086EDF25B36B30014BFC","sizeBytes":4565},"review":null,"source":{"repositoryUrl":"https://github.com/hoangsonww/Claude-Code-Agent-Monitor","path":".claude/skills/file-headers","license":"MIT","commit":"d130ebb498786c2b985a57e5c920ca781060b709","subtreeSha":"182770C363236FCB182B7391E8099BEC2FA806958FA48AF529611716F3FAA12B","lastSyncedAt":"2026-09-25T06:49:18.541012Z"},"reviewedAt":"2026-09-07T18:49:02.811063Z","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow."},"install":[{"target":"skills-cli","command":"npx skills add https://github.com/hoangsonww/Claude-Code-Agent-Monitor/tree/master/.claude/skills/file-headers"},{"target":"claude-code","command":"claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install hoangsonww-claude-code-agent-monitor@llmmart"},{"target":"git","command":"git clone https://github.com/hoangsonww/Claude-Code-Agent-Monitor.git"}]}