Back to list
aiskillstore

repo-metadata

by aiskillstore

Security-audited skills for Claude, Codex & Claude Code. One-click install, quality verified.

102🍴 3📅 Jan 23, 2026

SKILL.md


name: repo-metadata description: This skill should be used when the user asks to "generate repository metadata", "create catalog-info.yaml", "add repo metadata", "document repository structure", or mentions generating structured metadata for service catalog or architecture documentation. version: 1.0.0

Repository Metadata

Generate structured catalog-info.yaml metadata for repositories using industry-standard conventions (based on Backstage catalog format). This metadata enables cross-repository architecture analysis and service catalog functionality.

Purpose

Create and maintain catalog-info.yaml files that describe a repository's role in the broader architecture. This metadata feeds into architectural views, dependency graphs, and service groupings across the entire organization.

When to Use

Trigger this skill when:

  • User asks to "generate repo metadata" or "create catalog-info.yaml"
  • User wants to document a repository for a service catalog
  • User needs to prepare a repository for cross-repo architecture analysis
  • User mentions "service catalog" or "component metadata"

Metadata Schema

The catalog-info.yaml file follows Backstage conventions with Astrabit-specific extensions:

apiVersion: astrabit.io/v1
kind: Component
metadata:
  name: service-name          # Required: Unique identifier
  description: Brief description
  tags:
    - backend
    - user-management
spec:
  # Service Classification
  type: service               # Required: service, gateway, worker, library, frontend, database
  category: backend           # Broader category
  domain: trading             # Business domain
  owner: platform-team        # Team responsible

  # Dependencies (Upstream)
  dependsOn:
    - component: auth-service
      type: service
    - component: user-db
      type: database

  # APIs Provided
  providesApis:
    - name: User API
      type: REST
      definition: ./openapi.yaml

  # APIs Consumed
  consumesApis:
    - name: Auth API
      providedBy: auth-service

  # Events Produced
  eventProducers:
    - name: user-events
      type: kafka
      topic: user.created
      schema: avro

  # Events Consumed
  eventConsumers:
    - name: order-events
      type: kafka
      topic: order.placed
      group: user-service-group

  # HTTP Routes (for gateways/services)
  routes:
    - path: /api/users/*
      methods: [GET, POST, PUT, DELETE]
      handler: this
    - path: /api/auth/*
      methods: [POST]
      forwardsTo: auth-service

  # Infrastructure
  runtime: nodejs             # nodejs, python, go, java, etc.
  framework: nestjs           # nestjs, fastapi, spring, etc.

Generation Workflow

Phase 1: Analyze Repository

Gather information about the repository:

  1. Use existing analysis scripts:

    python skills/repo-docs/scripts/analyze-repo-structure.py /path/to/repo
    python skills/repo-docs/scripts/find-integration-points.py /path/to/repo
    
  2. Read existing documentation:

    • Check for INTEGRATIONS.md - contains upstream/downstream relationships
    • Check for ARCHITECTURE.md - contains service role and dependencies
    • Check for README.md - contains basic description and tech stack
  3. Detect from code:

    • Language from file extensions and package files
    • Framework from dependencies
    • Integration points from import patterns

Phase 2: Generate Metadata

Based on analysis, generate catalog-info.yaml with detected values:

FieldDetection Method
nameRepo name or package.json name field
descriptionREADME title/description or generated from code
typeInferred from code patterns (gateway has routes, worker has consumers only)
runtimeFrom package files (package.json, pyproject.toml, go.mod)
frameworkFrom dependencies (nestjs, fastapi, spring-boot, etc.)
dependsOnFrom integration point scanning
eventProducersFrom kafka.producer or similar patterns
eventConsumersFrom @KafkaListener, @EventListener, or similar patterns
routesFrom @Controller, @GetMapping, router definitions

Phase 3: Present and Refine

Present the generated metadata to the user in a table format:

Generated catalog-info.yaml:

| Field | Value | Source |
|-------|-------|--------|
| name | user-service | repo name |
| type | service | detected: has routes and consumers |
| runtime | nodejs | package.json |
| framework | nestjs | dependencies |
| domain | unknown | ❌ needs input |
| owner | unknown | ❌ needs input |
| dependsOn | auth-service, user-db | integration scan |

Prompt user to review and fill in missing fields (marked with ❌).

Phase 4: Write Metadata File

Write catalog-info.yaml to the repository root.

Offer to update related docs to reference the new metadata file:

  • Add link to catalog-info.yaml in README.md
  • Update INTEGRATIONS.md to be consistent with metadata

Service Type Detection

TypeIndicators
gatewayHas routes with forwardsTo, handles external requests, minimal business logic
serviceHas both providesApis and consumesApis, business logic
workerOnly eventConsumers, no HTTP routes, background processing
libraryNo APIs consumed, only provides, shared utilities
frontendtype: frontend in package.json, has build artifacts
databaseContains migrations, schemas, no application code

Script Usage

Use scripts/generate-metadata.py to automate metadata generation:

# Generate from current directory
python skills/repo-metadata/scripts/generate-metadata.py

# Generate from specific repo
python skills/repo-metadata/scripts/generate-metadata.py /path/to/repo

# Output as JSON for inspection
python skills/repo-metadata/scripts/generate-metadata.py --format json

The script:

  1. Runs repo structure analysis
  2. Scans for integration points
  3. Reads existing docs
  4. Outputs catalog-info.yaml content

Additional Resources

Reference Files

  • references/schema.md - Complete catalog-info.yaml schema reference
  • references/detection-patterns.md - Patterns for detecting service characteristics

Example Templates

  • examples/catalog-info-template.yaml - Full template with all fields
  • examples/catalog-info-gateway.yaml - Example gateway service
  • examples/catalog-info-worker.yaml - Example worker service
  • examples/catalog-info-library.yaml - Example shared library

Quality Checklist

Before finalizing metadata, verify:

  • name is unique across the organization
  • type correctly classifies the service
  • domain and owner are filled (not auto-detected)
  • dependsOn lists all upstream dependencies
  • eventProducers and eventConsumers are complete
  • Routes are documented if this is a gateway/service
  • File is valid YAML
  • File is at repository root (catalog-info.yaml)

Score

Total Score

60/100

Based on repository quality metrics

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

0/10
説明文

100文字以上の説明がある

0/10
人気

GitHub Stars 100以上

+5
最近の活動

1ヶ月以内に更新

+10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

+5

Reviews

💬

Reviews coming soon