Skip to content
Back to skills

2890 Auto Tag F4e583f6

ASecurity

Batch auto-tag notes using parallel Haiku agents to analyse content and suggest hierarchical tags

  • 9 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 11, 2026
devopsjavascripttypescriptpythonrustgojavasqldockerkubernetesaws

Works with

  • api

Security analysis

A100/100

Scanned October 11, 2026

npx -y skills add tools-only/X-Skills --skill 2890-auto-tag_f4e583f6 --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of 2890 Auto Tag F4e583f6?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for 2890 Auto Tag F4e583f6
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/tools-only-2890-auto-tag-f4e583f6/badge)](https://www.skillsdirectory.com/skills/tools-only-2890-auto-tag-f4e583f6)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

SKILL.md
---
description: Batch auto-tag notes using parallel Haiku agents to analyse content and suggest hierarchical tags
model: haiku
---

# /auto-tag

Batch auto-tag Markdown notes by analysing their content and suggesting appropriate hierarchical tags. Uses parallel Haiku agents processing notes in batches of 15-20 for cost-effective, high-throughput tagging.

## When to Use This Skill

- Tagging a batch of newly created notes
- Applying a consistent tag taxonomy to existing notes
- Re-tagging notes after a taxonomy migration
- Ensuring all notes meet minimum tag requirements
- Filling in missing tags across the vault

## Usage

```
/auto-tag [--scope path/to/folder] [--mode suggest|apply] [--taxonomy path/to/taxonomy.md]
/auto-tag --type Meeting         # Only process notes of a specific type
/auto-tag --limit 50             # Process at most 50 notes
```

### Parameters

| Parameter     | Description                                          | Required |
|---------------|------------------------------------------------------|----------|
| `--scope`     | Folder or glob pattern (default: notes missing tags) | No       |
| `--mode`      | `suggest` shows tags; `apply` writes them (default: `suggest`) | No |
| `--taxonomy`  | Path to tag taxonomy file for reference              | No       |
| `--type`      | Only process notes of a specific frontmatter type    | No       |
| `--limit`     | Maximum number of notes to process                   | No       |

## Instructions

### Phase 1: Identify Notes Needing Tags

1. **Scan notes in scope** -- Find all Markdown files
2. **Parse frontmatter** -- Extract existing tags
3. **Filter to candidates:**
   - Notes with no tags field
   - Notes with empty tags (`tags: []`)
   - Notes with fewer than 2 tags
   - Notes with flat (non-hierarchical) tags
4. **Exclude directories:** `Templates/`, `.obsidian/`, `.claude/`, `Archive/`, `Attachments/`
5. **Load taxonomy** -- If `--taxonomy` provided, use it as the tag reference. Otherwise, scan existing tags across the vault to build a frequency-based taxonomy.
6. **Sort by type** for batch efficiency
7. **Divide into batches** of 15-20 notes per agent

### Phase 2: Batch Tagging -- Agent Team (Parallel Haiku Agents)

Use the Batch Processing pattern. Launch N parallel agents, each processing 15-20 notes.

**Agent 1-N: Tag Analyst** (Haiku)
Task: Analyse content and suggest tags for assigned batch

For each note in the batch:

1. **Read frontmatter** -- extract `type`, `title`, `project`, `status`
2. **Read body content** -- first 500 words
3. **Apply type-based auto-tags** -- deterministic tags from the Type-Based Auto-Tags table below
4. **Apply content keyword matching** -- use the Content Keyword-to-Tag Mapping table below
5. **Apply project field matching** -- if `project:` field exists, derive a `project/` tag
6. **Suggest 2-5 hierarchical tags** per note total
7. **Validate tags** -- check all suggested tags against the taxonomy (if provided); flag any tag not in the taxonomy as "novel"

Quality rules:
- No `#` prefix in YAML tags
- All lowercase
- Hierarchical format required (e.g., `domain/data` not just `data`)
- Hyphens for multi-word tags (e.g., `domain/supply-chain`)
- Minimum 2 tags, maximum 5 tags per note
- Prefer fewer, more accurate tags over many vague ones

Return: List of `{ filename, existingTags[], suggestedTags[], confidence, reason }` per note

---

## Tag Mapping Reference

> **Customise these tables for your vault.** The mappings below are generic starting points. Replace or extend them with your own domain-specific keywords, project names, and technology stack.

### Type-Based Auto-Tags

These deterministic tags are **always** added based on the note's `type` frontmatter field. They require no content analysis.

| Type        | Auto-tags                               | Notes                                    |
|-------------|-----------------------------------------|------------------------------------------|
| ADR         | `type/adr`, `activity/architecture`     | Architecture Decision Records            |
| Project     | `activity/delivery`                     | Also add `project/<name>` from title     |
| Meeting     | `activity/meeting`                      | Infer topic tags from title/content      |
| Task        | `activity/task`                         | Infer project from `project:` field      |
| Research    | `activity/research`                     | Research and investigation notes         |
| Incubator   | `activity/research`                     | Early-stage ideas and explorations       |
| Concept     | `type/concept`                          | Infer domain tags from content           |
| Pattern     | `type/pattern`                          | Infer domain tags from content           |
| Reference   | `type/reference`                        | Also infer from `referenceType` if set   |
| System      | `type/system`                           | Technology entity notes                  |
| Daily       | `daily`                                 | Daily journal entries                    |
| Email       | _(infer from content)_                  | No deterministic tags                    |
| Trip        | _(skip)_                                | Typically no tags needed                 |

### Content Keyword-to-Tag Mapping

When note content (title + body) contains these keywords, suggest the corresponding tag. This table is a **template** -- adapt the keywords and tags to match your vault's domain and technology stack.

| Content Keywords                           | Suggested Tag             |
|--------------------------------------------|---------------------------|
| AWS, Lambda, S3, EC2, CloudFormation       | `technology/aws`          |
| Kafka, streaming, event-driven             | `technology/kafka`        |
| API, REST, GraphQL, endpoint, OpenAPI      | `technology/api`          |
| database, SQL, migration, schema, ORM      | `technology/database`     |
| Docker, Kubernetes, container, helm        | `technology/containers`   |
| CI/CD, pipeline, deployment, GitHub Actions| `technology/cicd`        |
| Python, JavaScript, TypeScript, Go, Rust   | `technology/<language>`   |
| security, IAM, encryption, authentication  | `domain/security`         |
| data, analytics, pipeline, warehouse       | `domain/data`             |
| cloud, infrastructure, networking          | `domain/cloud`            |
| integration, middleware, message broker    | `domain/integration`      |
| architecture, design, pattern, C4          | `activity/architecture`   |
| research, investigation, POC, spike        | `activity/research`       |
| governance, compliance, policy, audit      | `activity/governance`     |
| meeting, standup, review, retrospective    | `activity/meeting`        |
| risk, threat, vulnerability, CVE           | `domain/security`         |
| documentation, guide, how-to, runbook      | `activity/documentation`  |
| planning, roadmap, strategy, vision        | `activity/planning`       |
| monitoring, observability, logging, alerts | `domain/operations`       |

### Project Field Mapping

If the note has a `project:` frontmatter field containing a wiki-link, derive a project tag:

```
project: "[[Project - Orders Platform]]"  -->  project/orders-platform
project: "[[Project - Cloud Migration]]"  -->  project/cloud-migration
```

**Rule:** Lowercase the project name, replace spaces with hyphens, strip the `Project - ` prefix.

---

### Phase 3: Synthesise and Validate

1. **Compile suggestions** from all agents
2. **Validate against taxonomy:**
   - Check every suggested tag exists in the taxonomy file (if provided)
   - Flag tags not in the taxonomy as "novel" -- these need manual review
   - Do not auto-apply novel tags
3. **Group by confidence:**
   - **High:** Tags from the type-based auto-tags table, or exact matches in the taxonomy
   - **Medium:** Tags inferred from content keyword matching against known taxonomy entries
   - **Low:** Novel tags not found in the taxonomy
4. **De-duplicate** -- remove tags already present on the note

### Phase 4: Apply Tags

If `--mode apply`:

1. Apply high-confidence tags automatically
2. Present medium/low confidence tags for user review before applying

For each note with approved tags:

1. Read current frontmatter
2. If `tags: []` -- replace with suggested tags
3. If no tags field -- add `tags:` with suggested tags
4. **Never overwrite existing non-empty tags** -- only add to them
5. Write updated file using Edit tool

#### YAML Formatting Rules

```yaml
# Inline format for 1-3 tags:
tags: [activity/research, domain/data]

# Multi-line format for 4+ tags:
tags:
  - activity/architecture
  - technology/aws
  - domain/cloud
  - project/cloud-migration
```

**Rules:**
- Use inline `[tag1, tag2]` format when there are 1-3 tags
- Switch to multi-line format (one tag per line with `- ` prefix) when there are 4 or more tags
- Match whichever format the file already uses, if tags were previously present
- No `#` prefix -- ever -- in frontmatter YAML

### Phase 5: Report

```markdown
# Auto-Tag Report

**Date:** YYYY-MM-DD | **Notes Processed:** X | **Tags Suggested:** X

## Summary

| Confidence | Notes | Tags Added | Action         |
|------------|-------|------------|----------------|
| High       | X     | X          | Auto-applied   |
| Medium     | X     | X          | Needs review   |
| Low        | X     | X          | Manual review  |

## Tag Suggestions

### High Confidence

| Note                   | Existing Tags          | Suggested Tags                          |
|------------------------|------------------------|-----------------------------------------|
| `ADR - API Gateway.md` | `[]`                  | + `type/adr`, `activity/architecture`   |

### Medium Confidence

| Note                   | Existing Tags | Suggested Tags              | Reason                          |
|------------------------|---------------|-----------------------------|---------------------------------|
| `Meeting - 2026-01...` | `[]`          | `activity/meeting`, `domain/data` | Title mentions data review |

### New Tags Introduced

| Tag                     | Suggested For | In Taxonomy? |
|-------------------------|---------------|--------------|
| `domain/observability`  | 3 notes       | No           |

## By Type

| Type    | Tagged | Common Tags Applied         |
|---------|--------|-----------------------------|
| Meeting | 45     | `activity/meeting`, domain/* |
| ADR     | 20     | `type/adr`, technology/*     |
| Concept | 30     | `type/concept`, domain/*     |
```

## Safety

- **Always use `--mode suggest` first** for vault-wide operations
- **Never overwrite** existing non-empty tags -- tags are additive only
- **Commit to git** before running `--mode apply`
- **Review novel tags** before applying -- they may indicate taxonomy gaps
- **Validate against taxonomy** to prevent tag drift and inconsistency

## Examples

### Example 1: Preview Tags for All Untagged Notes

```
/auto-tag --mode suggest
```

### Example 2: Apply Tags to a Specific Folder

```
/auto-tag --scope Meetings/2026/ --mode apply
```

### Example 3: With Custom Taxonomy

```
/auto-tag --taxonomy .claude/context/tag-taxonomy.md --mode suggest
```

### Example 4: Process Only ADRs

```
/auto-tag --type ADR --mode suggest
```

---

**Invoke with:** `/auto-tag` to batch-tag notes with AI-suggested hierarchical tags

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.