File headers
Skill hoangsonww/Claude-Code-Agent-Monitor/.claude/skills/file-headers
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.From its SKILL.md
npx -y skills add hoangsonww/Claude-Code-Agent-Monitor --skill file-headersAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- skips confirmationTells the agent to proceed without asking first, 1 time: "do not wait to be asked".
- runs commandsInstructs the agent to run 2 commands, including `bash .claude/skills/file-headers/scripts/check-headers.sh` and 1 more.
SKILL.md
4.1 KB, 962 tokens by cl100k_base, as published. Nobody here has run it
File Headers — Copyright Comment + File Overview
Every applicable source file in this repository starts with a header comment containing a file overview and the exact author line:
@author Son Nguyen <[email protected]>
The name and email must be exactly as above — no variations, no substitutions, no other names. This applies to every coding agent working in this repo (Claude Code, Codex, or any other tool): when you create a new applicable file, write the header first; when you update an existing applicable file that is missing the header, add it as part of the same change.
Applicable files
| Included | Excluded |
|---|---|
*.js, *.ts, *.tsx, *.cjs, *.mjs | anything under node_modules/, dist/, build/, data/ |
*.py, *.sh | vendored/minified files (*.min.js, wiki/mermaid.min.js) |
*.css | generated files (wiki/i18n-content.js — carries its own AUTO-GENERATED banner) |
snapshots (__snapshots__/), lockfiles, JSON/YAML/Markdown |
Header formats by file type
JS / TS / TSX — server & scripts style (overview inline in @file):
/**
* @file One-to-few-sentence overview of what this file does and why it
* exists. Mention the key contracts or invariants the file owns.
* @author Son Nguyen <[email protected]>
*/
JS / TS / TSX — client style (@file name + @description overview), used
under client/src/:
/**
* @file ComponentName.tsx
* @description What the component/module renders or provides and how it fits
* into the app.
* @author Son Nguyen <[email protected]>
*/
CSS (same block-comment shape as client/src/index.css):
/**
* @file file.css
* @description What these styles cover.
* @author Son Nguyen <[email protected]>
*/
Shell (# block right after the shebang; existing overview comments count —
just make sure the @author line is in the block):
#!/usr/bin/env bash
# script-name.sh — what the script does, one to few lines.
# @author Son Nguyen <[email protected]>
Python (inside the module docstring):
"""
module.py — what the module does.
@author Son Nguyen <[email protected]>
"""
Rules
- New file → header first. Any applicable file you create starts with the header before any code (after the shebang for scripts).
- Touched file missing header → add it. If you edit a file that lacks the header, add one in the same commit. Write a real overview — describe what the file actually does; never a placeholder like "TODO" or "utility file".
- Exact author line.
@author Son Nguyen <[email protected]>— byte-exact, in every file type (shell and Python use it inside#/ docstring comments). - Don't churn existing headers. If a file already has a compliant header, leave it alone unless the file's purpose changed (then update the overview).
- Overviews must stay truthful. When an edit changes what a file does,
update its
@file/@descriptionoverview in the same change.
Audit
Run the bundled checker to list any applicable file missing the header:
bash .claude/skills/file-headers/scripts/check-headers.sh
Exit code 0 = fully compliant; 1 = the printed files are missing headers.
Run it before finishing any change-set that adds files, and during reviews.
On every pull request, GitHub Actions runs
.claude/skills/file-headers/scripts/check-headers-pr.sh against only the
files changed in the PR diff (added, copied, renamed, or modified). Test locally
before pushing:
bash .claude/skills/file-headers/scripts/check-headers-pr.sh origin/master HEAD
What ships with it: 2 files
5.1 KB alongside SKILL.md, 2 of them executable
scripts/
- check-headers-pr.shruns4.0 KB
- check-headers.shruns1.1 KB
Gives 0 of the 12 instructions most context ai engineering skills give in 962 tokens
Counted across 1,328 of the 2,349 authors here whose files we hold, read 2026-09-06
- Dispatch a fresh subagent for each taskin 76 of 1328, across 59 files
- Perform spec compliance review before code quality reviewin 44 of 1328, across 34 files
- Dispatch a final code reviewer after all tasksin 38 of 1328, across 26 files
- Answer subagent questions before allowing implementationin 36 of 1328, across 26 files
- Use the least powerful model capable of the taskin 33 of 1328, across 26 files
- Create a TodoWrite list for all tasksin 32 of 1328, across 22 files
- Perform a task review after each implementationin 31 of 1328, across 24 files
- Extract all tasks and context from the planin 29 of 1328, across 20 files
- Provide full task text to subagentsin 28 of 1328, across 20 files
- Use git worktrees for isolated workspacesin 25 of 1328, across 20 files
- Specify the model explicitly when dispatching a subagentin 23 of 1328, across 18 files
- Execute all tasks from the plan without stoppingin 21 of 1328, across 16 files
Said here and by no other author read
- add header to every new applicable file
- add header to existing files missing one during edits
- write a truthful file overview in the header
- use the exact author line provided
- update overview if file purpose changes
- run header checker before finishing change-sets
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.