Skip to content

Tags — Cross-Cutting Labels for Documents

0.1.4

This release adds tags to document frontmatter — optional labels that let you categorize documents across directories, teams, and concerns.

Improvements

  • Tags in document frontmatter — lowercase labels (^[a-z][a-z0-9_:|-]*$) with colon-namespaced conventions like team:payments or scope:frontend
  • list_documents gains a tags filter parameter with OR semantics — matches documents containing at least one of the specified tags
  • create_document and update_document accept an optional tags array — omit to preserve, pass [] to clear, pass values to replace
  • Session hooks inject EXISTING TAGS: ... (top 30 by frequency) so agents see available tags without asking
  • archcore doctor reports tag hygiene — invalid format, singleton tags (possible typos), unique tag count

Misc

  • Updated context documentation for tags
  • Added Golang context and code review skill

Meet tags — one document, many contexts

Directory structure is one-dimensional. A document like e2e-auth-flow.rule.md lives in one folder, but it matters to the frontend team, the backend team, and the QA guild. Tags solve this — they give you a second axis of organization without moving files around.

When to use them:

  • Marking which team owns or cares about a document — team:backend, team:payments
  • Grouping documents by concern across directories — auth, billing, onboarding
  • Filtering context for focused agent sessions — “show me everything tagged api

Quick test: “Would someone outside this folder’s natural audience need to find this document?” If yes — add a tag.

Example — tagging a cross-team decision:

Terminal window
archcore mcp
# Then ask your agent:
# "Create an ADR about our new auth token rotation strategy
# and tag it with auth, team:backend, and team:frontend"

Your agent creates .archcore/auth-token-rotation.adr.md with tags in the frontmatter:

---
title: "Auth Token Rotation Strategy"
status: accepted
tags:
- auth
- team:backend
- team:frontend
---

Now anyone working on auth, backend, or frontend sees this decision in their filtered view.

Example — filtering documents by tag:

Terminal window
# "Show me all documents tagged with team:backend"
# "List every document tagged auth or billing"

The list_documents tool returns only matching documents. OR semantics means tagging with auth or billing returns documents that have either tag — useful for pulling cross-cutting context into a focused session.

Example — updating tags on an existing document:

Terminal window
# "Add the payment_flow tag to our Stripe integration ADR"
# "Remove all tags from the legacy migration plan"

Pass a new array to replace tags entirely, or pass [] to clear them. Omit the field to leave existing tags untouched.

Tags vs directories:

NeedUse
Permanent home for a documentDirectory structure
Cross-cutting team ownershipteam:backend, team:frontend
Thematic grouping across foldersauth, billing, onboarding
Temporary project membershipproject:q2-migration

Colons in tag names are a convention, not enforced structure — but they make filtering intuitive. Use them for namespaces like team:, scope:, or project:.

View on GitHub →