Full assessment: external freshness + internal consistency + semantic accuracy. Stamp only when all pass.
brain-qa.cjs checks the date mechanically (the lastReviewed field). This skill defines the full review that earns that date. A re-stamp means both "content matches external reality" AND "content is internally consistent."
Critical Thinking Discipline
Every audit item must pass through critical thinking — not just mechanical verification. Apply these disciplines throughout:
Discipline
Application to Currency Audit
Alternative hypotheses
"This API exists" isn't enough — is the usage correct? Could the documented pattern be outdated even if the API isn't?
Missing data
What's NOT in the file that should be? Missing caveats, undocumented prerequisites, absent error handling?
Evidence quality
Is the file's advice based on official docs, or a single blog post from 2021?
Self-report skepticism
"Best practice" claims — verified against what source? "Works on current versions" — actually tested?
Bias detection
Anchoring on the file's current content. Challenge: would you write this the same way from scratch today?
Falsifiability
What would prove this advice wrong? If nothing could, the claim may be unfalsifiable hand-waving
Materiality gate
If this item were stale, would it cause real harm? Prioritize fixes that affect decisions over cosmetic accuracy
The key question at every checklist item: "Am I verifying this is correct, or am I assuming it's correct because it looks plausible?"
When to Use
brain-qa shows files with expired or missing lastReviewed dates
Before a release that ships brain files to heirs
On a scheduled cadence (target: full audit every 90 days)
After a major external change (new API version, deprecated pattern, VS Code update)
Quick Reference
Step
Action
Outcome
Triage
Run node scripts/brain-qa.cjs, read the stale-file output
Ordered work list
Research
Check latest docs, changelogs, releases for the file's domain
Delta list
Compare
Diff current content against latest practices
Stale advice identified
Audit
Check terminology, cross-references, claims, process logic
Internal consistency verified
Update
Fix stale content, wrong terms, broken references, contradictions
Full assessment complete
Stamp
Set lastReviewed: YYYY-MM-DD to today in frontmatter
Pass restored
Verify
Re-run brain-qa, confirm file passes
Clean output
Audit Process
1. Triage
Run brain-qa and read the stale-file output:
node scripts/brain-qa.cjs
brain-qa surfaces files whose lastReviewed exceeds the 180/365-day thresholds (warn/fail). Work the failures first, then the warnings, oldest first.
Batch size: 10-15 files per session. Larger batches cause quality drift.
2. Per-File Review Checklist
For each file, work through this checklist:
Frontmatter Check
lastReviewed field exists and is a valid YYYY-MM-DD date
description accurately reflects current content (not stale summary)
For instructions: applyTo patterns still match the intended activation scope
No dropped legacy fields present (type, application, tier, currency, inheritance, lifecycle) — see scripts/brain-qa.cjs for the canonical drop list
Content Freshness Check
API references: Do referenced APIs still exist? Check for deprecations, renamed methods, new parameters
Version numbers: Are pinned versions still current? (Node.js, VS Code API, Azure SDKs, etc.)
URL links: Do referenced URLs still resolve? Are they the canonical location?
Best practices: Has the community consensus changed? Check official docs, changelogs
Tool availability: Are referenced CLI tools, extensions, or services still available?
Code examples: Do code snippets still compile/run against current versions?
Semantic Consistency Check
Terminology: File uses current terms, not deprecated synonyms (e.g., "skills" not "DK files", "skills/" not "domain-knowledge/")
Claims match reality: Do documented features, commands, or capabilities actually exist in code?
Cross-references: Links to other skills, agents, instructions, or files are correct and targets exist
No contradictions: File doesn't conflict with related files covering the same topic
Process logic: If the file documents a workflow, each step's prerequisites exist and outputs are real
Architecture alignment: Any structural claims (counts, relationships, directory layouts) match current state
Structural Check
No token waste: Remove Mermaid diagrams in non-teaching skills, redundant examples, excessive prose
Progressive disclosure: Most important info first, advanced topics later
Actionable content: Every section helps the LLM produce better output
3. Update and Stamp
Stamp only after ALL checklist sections pass — frontmatter, freshness, semantic consistency, and structural. A partial review does not earn a date stamp.
Make all content fixes (freshness + semantic + structural)
Update lastReviewed: YYYY-MM-DD in frontmatter to today's date
If the file's description changed meaning, update it
Research latest upstream docs before deciding; record the pinned upstream version in the file body
Only after upstream verification
Rule: Never re-stamp without reviewing. A stamp is an attestation, not a date bump.
Related Skills
doc-hygiene — Anti-drift rules for living documents
skill-review — Five-gate audit (Gate 5 Currency & Coherence is the semantic companion to this skill's mechanical re-stamp)
Would Revise If
Revisit this skill by 2026-08-26 (90 days) or sooner if any of the following fires:
Files stamped through this audit are flagged later by self-audit or coherence sweeps as carrying stale content the audit should have caught — ≥3 occurrences in a quarter
Re-stamps without content change recur ≥3 times for the same file in a quarter (rubber-stamp pattern)
Decisions on equivalent Stale File Decision Table entries diverge across audits ≥2 times in a quarter (decision table too soft)
brain-qa.cjs changes the lastReviewed threshold defaults (currently 180-day warn / 365-day fail) — re-tune the 90-day audit cadence accordingly
Track these in docs/ledgers/curation-log.md tagged [CURRENCY-AUDIT-DRIFT].
1---2name: currency-audit3description: Comprehensive brain file review — external freshness, internal consistency, semantic accuracy — stamp only after full assessment4---56# Currency Audit
78> Full assessment: external freshness + internal consistency + semantic accuracy. Stamp only when all pass.
910brain-qa.cjs checks the **date** mechanically (the `lastReviewed` field). This skill defines the **full review** that earns that date. A re-stamp means both "content matches external reality" AND "content is internally consistent."
1112---
1314## Critical Thinking Discipline
1516Every audit item must pass through critical thinking — not just mechanical verification. Apply these disciplines throughout:
1718| Discipline | Application to Currency Audit |
19|---|---|
20| **Alternative hypotheses** | "This API exists" isn't enough — is the *usage* correct? Could the documented pattern be outdated even if the API isn't? |
21| **Missing data** | What's NOT in the file that should be? Missing caveats, undocumented prerequisites, absent error handling? |
22| **Evidence quality** | Is the file's advice based on official docs, or a single blog post from 2021? |
23| **Self-report skepticism** | "Best practice" claims — verified against what source? "Works on current versions" — actually tested? |
24| **Bias detection** | Anchoring on the file's current content. Challenge: would you write this the same way from scratch today? |
25| **Falsifiability** | What would prove this advice wrong? If nothing could, the claim may be unfalsifiable hand-waving |
26| **Materiality gate** | If this item were stale, would it cause real harm? Prioritize fixes that affect decisions over cosmetic accuracy |
2728**The key question at every checklist item**: "Am I verifying this is correct, or am I assuming it's correct because it looks plausible?"
2930---
3132## When to Use
3334- brain-qa shows files with expired or missing `lastReviewed` dates
35- Before a release that ships brain files to heirs
36- On a scheduled cadence (target: full audit every 90 days)
37- After a major external change (new API version, deprecated pattern, VS Code update)
3839---
4041## Quick Reference
4243| Step | Action | Outcome |
44|------|--------|---------|
45| **Triage** | Run `node scripts/brain-qa.cjs`, read the stale-file output | Ordered work list |
46| **Research** | Check latest docs, changelogs, releases for the file's domain | Delta list |
47| **Compare** | Diff current content against latest practices | Stale advice identified |
48| **Audit** | Check terminology, cross-references, claims, process logic | Internal consistency verified |
49| **Update** | Fix stale content, wrong terms, broken references, contradictions | Full assessment complete |
50| **Stamp** | Set `lastReviewed: YYYY-MM-DD` to today in frontmatter | Pass restored |
51| **Verify** | Re-run brain-qa, confirm file passes | Clean output |
5253---
5455## Audit Process
5657### 1. Triage
5859Run brain-qa and read the stale-file output:
6061```bash
62node scripts/brain-qa.cjs
63```
6465brain-qa surfaces files whose `lastReviewed` exceeds the 180/365-day thresholds (warn/fail). Work the failures first, then the warnings, oldest first.
6667**Batch size**: 10-15 files per session. Larger batches cause quality drift.
6869### 2. Per-File Review Checklist
7071For each file, work through this checklist:
7273#### Frontmatter Check
7475- [ ] `lastReviewed` field exists and is a valid `YYYY-MM-DD` date
76- [ ] `description` accurately reflects current content (not stale summary)
77- [ ] For instructions: `applyTo` patterns still match the intended activation scope
78- [ ] No dropped legacy fields present (`type`, `application`, `tier`, `currency`, `inheritance`, `lifecycle`) — see `scripts/brain-qa.cjs` for the canonical drop list
7980#### Content Freshness Check
8182- [ ] **API references**: Do referenced APIs still exist? Check for deprecations, renamed methods, new parameters
83- [ ] **Version numbers**: Are pinned versions still current? (Node.js, VS Code API, Azure SDKs, etc.)
84- [ ] **URL links**: Do referenced URLs still resolve? Are they the canonical location?
85- [ ] **Best practices**: Has the community consensus changed? Check official docs, changelogs
86- [ ] **Tool availability**: Are referenced CLI tools, extensions, or services still available?
87- [ ] **Code examples**: Do code snippets still compile/run against current versions?
8889#### Semantic Consistency Check
9091- [ ] **Terminology**: File uses current terms, not deprecated synonyms (e.g., "skills" not "DK files", "skills/" not "domain-knowledge/")
92- [ ] **Claims match reality**: Do documented features, commands, or capabilities actually exist in code?
93- [ ] **Cross-references**: Links to other skills, agents, instructions, or files are correct and targets exist
94- [ ] **No contradictions**: File doesn't conflict with related files covering the same topic
95- [ ] **Process logic**: If the file documents a workflow, each step's prerequisites exist and outputs are real
96- [ ] **Architecture alignment**: Any structural claims (counts, relationships, directory layouts) match current state
9798#### Structural Check
99100- [ ] **No token waste**: Remove Mermaid diagrams in non-teaching skills, redundant examples, excessive prose
101- [ ] **Progressive disclosure**: Most important info first, advanced topics later
102- [ ] **Actionable content**: Every section helps the LLM produce better output
103104### 3. Update and Stamp
105106**Stamp only after ALL checklist sections pass** — frontmatter, freshness, semantic consistency, and structural. A partial review does not earn a date stamp.
1071081. Make all content fixes (freshness + semantic + structural)
1092. Update `lastReviewed: YYYY-MM-DD` in frontmatter to today's date
1103. If the file's `description` changed meaning, update it
111112### 4. Verify
113114Re-run brain-qa to confirm the file now passes:
115116```bash
117node scripts/brain-qa.cjs --stdout | grep "filename"
118# PowerShell: node scripts/brain-qa.cjs --stdout | Select-String "filename"
119```
120121---
122123## Type-Specific Guidance
124125### Skills
126127| Check | What to Verify |
128|-------|---------------|
129| **Domain accuracy** | Does the skill reflect current state of its domain? |
130| **Trifecta link** | If workflow skill, does matching `.instructions.md` exist and align? |
131| **Reference files** | Are `references/` or `scripts/` subdirectories still accurate? |
132| **Examples** | Do code examples work with current tool versions? |
133134### Instructions
135136| Check | What to Verify |
137|-------|---------------|
138| **Routing accuracy** | Does `applyTo` glob match when this instruction should load? |
139| **Skill reference** | If instruction references a skill, is the skill still current? |
140| **Rule validity** | Are the rules still correct given current tooling? |
141142### Agents
143144| Check | What to Verify |
145|-------|---------------|
146| **Model availability** | Is the specified model still available and appropriate? |
147| **Tool references** | Do referenced tools still exist in the extension? |
148| **Handoff targets** | Do handoff agent names match actual agent files? |
149150### Prompts
151152| Check | What to Verify |
153|-------|---------------|
154| **Agent reference** | Does the `agent` field point to an existing agent? |
155| **Workflow steps** | Are the prompted steps still valid for current tools? |
156157### Muscles
158159| Check | What to Verify |
160|-------|---------------|
161| **Runtime compatibility** | Does the script run without errors on current Node.js? |
162| **Dependencies** | Are `@requires` dependencies still available? |
163| **Output format** | Does the output match what consumers expect? |
164| **Dead code** | Variables computed but never stored/used? Branches that can never match? Fields extracted but never displayed? |
165166---
167168## Batch Audit Workflow
169170For auditing many files efficiently:
1711721. **Sort by category**: Group files by domain (Azure, VS Code, testing, etc.) so research carries across files
1732. **Research once per domain**: Check the domain's latest changelog/release notes once, apply to all files in that domain
1743. **Parallel reads**: Read 5-6 files at once, note which need changes, then edit in sequence
1754. **Stamp in bulk**: After verifying all changes, stamp dates. Use brain-qa to confirm all pass
176177---
178179## Common Findings
180181| Finding | Fix |
182|---------|-----|
183| Deprecated API method | Replace with current equivalent, cite migration guide |
184| Stale version pin | Update to current stable version |
185| Dead URL | Find new canonical URL or remove reference |
186| Outdated best practice | Revise to current recommendation with rationale |
187| Redundant Mermaid diagram | Replace with concise prose description |
188| Missing `lastReviewed` field | Add field with today's date after completing review |
189| Legacy frontmatter field (`tier`, `currency`, `type`, `application`, `inheritance`, `lifecycle`) | Drop it; see `scripts/cleanup-frontmatter.cjs` for the canonical drop list |
190191---
192193## Stale File Decision Table (AC2)
194195When a file's currency stamp is expired or missing, decide before acting:
196197| Condition | Content Changed? | Action | Stamp? |
198|---|---|---|---|
199| Stamp expired, content still accurate | No | Re-stamp unchanged | Yes — review confirmed validity |
200| Stamp expired, minor drift (terminology, links) | Yes — minor | Edit then re-stamp | Yes — after fixes land |
201| Stamp expired, material staleness (deprecated APIs, wrong patterns) | Yes — major | Full rewrite of stale sections, then stamp | Yes — after full review |
202| Stamp missing, file is active and current | N/A | Add stamp with today's date | Yes — review confirms currency |
203| Stamp expired, file covers a dead domain (sunset API, retired tool) | N/A | Add a `## Deprecated` section + `docs/deprecations.md` row + `supersededBy` link if a successor exists | No — deprecated files don't get stamped |
204| Stamp expired, file is historical record (plan, ADR, postmortem) | N/A | Re-stamp with long `reviewEvery` (or exempt via doc-hygiene convention) | Yes — stamp means "confirmed intentionally historical" |
205| Stamp expired, file documents an upstream-dependent capability (SDK, MCP server, external API) | Check upstream | Research latest upstream docs before deciding; record the pinned upstream version in the file body | Only after upstream verification |
206207**Rule**: Never re-stamp without reviewing. A stamp is an attestation, not a date bump.
208209## Related Skills
210211- [doc-hygiene](../doc-hygiene/SKILL.md) — Anti-drift rules for living documents
212- [skill-review](../skill-review/SKILL.md) — Five-gate audit (Gate 5 Currency & Coherence is the semantic companion to this skill's mechanical re-stamp)
213214## Would Revise If
215216Revisit this skill by **2026-08-26** (90 days) or sooner if any of the following fires:
217218- Files stamped through this audit are flagged later by self-audit or coherence sweeps as carrying stale content the audit should have caught — ≥3 occurrences in a quarter
219- Re-stamps without content change recur ≥3 times for the same file in a quarter (rubber-stamp pattern)
220- Decisions on equivalent Stale File Decision Table entries diverge across audits ≥2 times in a quarter (decision table too soft)
221- brain-qa.cjs changes the `lastReviewed` threshold defaults (currently 180-day warn / 365-day fail) — re-tune the 90-day audit cadence accordingly
222223Track these in `docs/ledgers/curation-log.md` tagged `[CURRENCY-AUDIT-DRIFT]`.
Run npx skillmds@latest add gabrielmoreira/currency-audit in your terminal (requires Node.js), paste this page's agent-chat prompt into Claude, Cursor, or any MCP-connected agent, or download the SKILL.md file and copy it into your agent's skills directory.
Comprehensive brain file review — external freshness, internal consistency, semantic accuracy — stamp only after full assessment It is listed under Security on SkillMD.
This skill has not completed SkillMD's automated safety review yet. Independent scanners report: SkillSpector: PASS, Skill Scanner: PASS. Capability flags: reads secrets. SkillMD never runs a skill's scripts for you; review the SKILL.md before installing.
This skill is tagged as working with Claude Code, Claude.ai, OpenAI Codex. SKILL.md is an open format, so most agents that read a skills directory can load it too.
Yes. Installing skills from SkillMD is free, and the skill stays under its author's original license.
gabrielmoreira (@gabrielmoreira) published this skill. Their other Agent Skills are listed on their SkillMD profile.