/auto-tag
SkillDocs & knowledgeBatch auto-tag untagged notes using content analysis
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the /auto-tag skill
What this skill tells your AI
The instructions your AI receives, as published by davidroliverba/architectkb in .claude/skills/auto-tag/SKILL.md and read by ahel’s review.
Batch auto-tag notes that have empty or missing tags by analysing their content and type. Addresses the 61% empty tag rate in the vault.
Usage
/auto-tag # Process all untagged notes
/auto-tag <path> # Process specific file or folder
/auto-tag --dry-run # Preview changes without applying
/auto-tag --type Meeting # Only process untagged notes of a specific type
/auto-tag --limit 50 # Process at most 50 notes
Instructions
Phase 1: Find Untagged Notes
Use Grep and Glob to find notes with empty tags:
# Find files with empty tags arrays
Grep for "tags: \[\]" in *.md files (exclude Templates/, .obsidian/, .claude/, Archive/)
# Also find files with no tags field at all
# Notes with tags containing only template variables
Filter results:
- Exclude
Templates/,.obsidian/,.claude/,Archive/,Attachments/ - If
--typespecified, filter by frontmatter type field - If
<path>specified, scope to that path - Sort by type for batch efficiency
Phase 2: Analyse and Tag (Parallel)
Launch parallel Haiku sub-agents, batching 20 notes per agent:
For each note, the agent should:
- Read frontmatter — extract
type,title,project,status - Read body content — first 500 words
- Determine tags using these rules:
Tag Selection Rules
By note type (always apply):
| Type | Auto-tags |
|---|---|
| ADR | type/adr, activity/architecture |
| Meeting | (infer from title/content) |
| Task | (infer project from project: field) |
| Project | activity/delivery + self-referencing project/ tag |
| System | type/system |
| Incubator | activity/research |
| Research | activity/research |
| Concept | (infer from content) |
| Pattern | (infer from content) |
| (infer from content) | |
| Reference | (infer from referenceType and content) |
| Trip | (no tags needed — skip) |
| Daily | daily |
By content analysis (keyword matching):
| Content Keywords | Suggested Tag |
|---|---|
| AWS, Lambda, S3, EC2, Bedrock | technology/aws |
| SAP, BTP, S/4HANA, UI5 | technology/sap |
| ERPSystem, MRO Vendor | technology/erp |
| Kafka, streaming, event | technology/kafka |
| Snowflake, data warehouse | technology/snowflake |
| security, IAM, encryption | domain/security |
| data, analytics, pipeline | domain/data |
| engineering, maintenance, MRO | domain/engineering |
| integration, API, middleware | domain/integration |
| cloud, infrastructure | domain/cloud |
| architecture, design, pattern | activity/architecture |
| research, investigation, POC | activity/research |
| governance, compliance, policy | activity/governance |
By project: field (if present):
| Project Link | Tag |
|---|---|
[[Project - Alpha]] | project/alpha |
[[Project - Beta]] or [[Project - Beta]] | project/beta |
[[Project - AlertHub]] | project/alerthub |
[[Project - Gamma]] | project/gamma |
[[Project - Delta]] | project/delta |
[[Project - Epsilon]] | project/epsilon |
[[Project - Cyber Uplift]] | project/cyber-uplift |
Tag count target: 2-5 tags per note. Prefer fewer, more accurate tags over many vague ones.
- Format tags — all lowercase, hierarchical, no
#prefix - Return — list of (filepath, suggested_tags) tuples
Phase 3: Apply Tags
For each note with suggested tags:
- Read current frontmatter
- If
tags: []— replace with suggested tags - If no tags field — add
tags:with suggested tags - Write updated file using Edit tool
Format:
# Inline for 1-3 tags:
tags: [activity/research, domain/data]
# Multi-line for 4+ tags:
tags:
- activity/architecture
- technology/aws
- domain/cloud
- project/alerthub
Phase 4: Report
## Auto-Tag Results
**Notes processed:** {{count}}
**Notes tagged:** {{tagged_count}}
**Notes skipped:** {{skipped_count}} (already tagged or no suggestions)
### By Type
| Type | Tagged | Example Tags |
|------|--------|-------------|
| Meeting | 45 | project/*, domain/* |
| Concept | 30 | activity/*, domain/* |
| ADR | 20 | type/adr, technology/* |
### Sample Changes
| Note | Tags Added |
|------|-----------|
| {{note}} | {{tags}} |
| {{note}} | {{tags}} |
Safety
- Always use
--dry-runfirst for vault-wide operations - Never overwrite existing non-empty tags
- Commit to git before running
- Tags are additive only — never removes existing tags
- Use the
.claude/context/tag-taxonomy.mdreference for valid hierarchies
Related Skills
/tag-management— Manual tag analysis and refactoring/quality-report— Includes tag coverage metrics/vault-maintenance— Includes tag health checks
Signals
- GitHub stars
- 52
- Forks
- 12
- Last commit
- Mar 2026
Advanced
- Catalog kind
- skill
- Gateway key
auto-tag- Source
- github.com/davidroliverba/architectkb