# NON-PRODUCTION EXEMPLAR — generated by `metagit config example`.
# Field descriptions come from Pydantic models; edit before use.

# Project name
name: example-umbrella
...
# Project description
description: Example umbrella workspace for documentation (not for production).
# Optional instructions for controller agents; applies with or without a workspace block
agent_instructions: 'Hermes controller example: search the workspace before creating folders or clones.\nUse
  metagit_workspace_status and metagit_workspace_health_check at session start.\n'
# Project URL
url: https://github.com/example-org/hermes-control-plane.git
...
# Project kind. This is used to determine the type of project and the best way to manage it.
kind: umbrella
# Documentation sources: bare strings (path or URL) or objects with kind, path/url, tags, and metadata for knowledge-graph ingestion
documentation:
  -
    # Source type (markdown, web, confluence, sharepoint, wiki, api, other)
    kind: example-value
...
    # Repo-relative or absolute path to a documentation file
    path: example-value
...
    # Remote documentation URL
    url: https://example.com/org/repo
...
    # Human-readable title
    title: example-value
...
    # Short summary for indexing and graph nodes
    description: Example text for documentation; replace before production use.
    # Flat metadata tags for filtering and graph edges
    tags:
      example: documentation
    # Extensible key-value payload for downstream graph ingestors
    metadata:
      source: metagit-config-example
...
# Manual cross-repo relationships and graph metadata for exports and GitNexus-style dependency maps
graph:
  # Manually entered cross-repo or cross-project edges
  relationships:
    -
      # Stable identifier for exports and graph merges
      id: example-value
...
      # Relationship source
      from_endpoint:
        # Workspace project name
        project: example-value
...
        # Repository name under the project
        repo: example-value
...
        # Optional file or directory path within the repo
        path: example-value
...
      # Relationship target
      to:
        # Workspace project name
        project: example-value
...
        # Repository name under the project
        repo: example-value
...
        # Optional file or directory path within the repo
        path: example-value
...
      # Relationship type (depends_on, documents, consumes, owns, related, …)
      type: example-value
...
      # Short label for graph UIs
      label: example-value
...
      # Longer explanation for agents and exports
      description: Example text for documentation; replace before production use.
      # Flat tags for filtering graph exports
      tags:
        example: documentation
      # Extensible payload for GitNexus or other graph ingestors
      metadata:
        source: metagit-config-example
...
  # Graph-level metadata for export pipelines
  metadata:
    source: metagit-config-example
...
# License information
license:
  # License type
  kind: None
  # License file path
  file: example
# Project maintainers
maintainers:
  -
    # Maintainer name
    name: example-name
...
    # Maintainer email
    email: maintainer@example.com
...
    # Maintainer role
    role: example
# Branch strategy used by the project.
branch_strategy: trunk
# Task management tools employed by the project.
taskers:
  -
    # Tasker type
    kind: Taskfile
# Branch naming patterns used by the project.
branch_naming:
  -
    # Branch strategy
    kind: trunk
    # Branch naming pattern
    pattern: example
# Generated artifacts from the project.
artifacts:
  -
    # Artifact type
    type: docker
    # Artifact definition
    definition: example
    # Artifact location
    location: example
    # Version strategy
    version_strategy: semver
# Secrets management tools employed by the project.
secrets_management:
  - example-value
...
# Secret definitions
secrets:
  -
    # Secret name
    name: example-name
...
    # Secret type
    kind: remote_jwt
    # Secret reference
    ref: example
# Variable definitions
variables:
  -
    # Variable name
    name: example-name
...
    # Variable type
    kind: string
    # Variable reference
    ref: example
# CI/CD configuration
cicd:
  # CI/CD platform
  platform: GitHub
  # List of pipelines
  pipelines:
    -
      # Pipeline name
      name: example-name
...
      # Pipeline reference
      ref: example
      # Pipeline variables
      variables:
        - example-value
...
# Deployment configuration
deployment:
  # Deployment strategy
  strategy: blue/green
  # Deployment environments
  environments:
    -
      # Environment name
      name: example-name
...
      # Environment URL
      url: https://example.com/org/repo
...
  # Infrastructure configuration
  infrastructure:
    # Provisioning tool
    provisioning_tool: Terraform
    # Hosting platform
    hosting: EC2
# Observability configuration
observability:
  # Logging provider
  logging_provider: console
  # Monitoring providers
  monitoring_providers:
    - prometheus
  # Alerting channels
  alerting_channels:
    -
      # Alerting channel name
      name: example-name
...
      # Alerting channel type
      type: slack
      # Alerting channel URL
      url: https://example.com/org/repo
...
  # Monitoring dashboards
  dashboards:
    -
      # Dashboard name
      name: example-name
...
      # Dashboard tool
      tool: example-value
...
      # Dashboard URL
      url: https://example.com/org/repo
...
# Important local project paths. In a monorepo, this would include any sub-projects typically found being built in the CICD pipelines.
paths:
  -
    # Friendly name for the path or project
    name: example-name
...
    # Short description of the path or project
    description: Example text for documentation; replace before production use.
    # Project kind
    kind: monorepo
    # Reference in the current project for the target project, used in dependencies
    ref: example
    # Project path
    path: example-value
...
    # Project branches
    branches:
      - example-value
...
    # Project URL
    url: https://example.com/org/repo
...
    # Sync setting
    sync: true
    # Programming language
    language: python
    # Language version
    language_version: 3.12
    # Package manager used by the project
    package_manager: uv
    # Frameworks used by the project
    frameworks:
      - example-value
...
    # Provider used to discover this repository
    source_provider: example-value
...
    # Source namespace identifier (org/user/group)
    source_namespace: example-value
...
    # Provider-native repository identifier
    source_repo_id: example-value
...
    # Flat metadata tags for managed repo search and filtering
    tags:
      example: documentation
    # If true, reconcile mode must not remove this repository automatically
    protected: false
    # Optional instructions for subagents operating in this repo or path
    agent_instructions: Example text for documentation; replace before production use.
# Additional project dependencies not found in the paths or components lists. These include docker images, helm charts, or terraform modules.
dependencies:
  -
    # Friendly name for the path or project
    name: example-name
...
    # Short description of the path or project
    description: Example text for documentation; replace before production use.
    # Project kind
    kind: monorepo
    # Reference in the current project for the target project, used in dependencies
    ref: example
    # Project path
    path: example-value
...
    # Project branches
    branches:
      - example-value
...
    # Project URL
    url: https://example.com/org/repo
...
    # Sync setting
    sync: true
    # Programming language
    language: python
    # Language version
    language_version: 3.12
    # Package manager used by the project
    package_manager: uv
    # Frameworks used by the project
    frameworks:
      - example-value
...
    # Provider used to discover this repository
    source_provider: example-value
...
    # Source namespace identifier (org/user/group)
    source_namespace: example-value
...
    # Provider-native repository identifier
    source_repo_id: example-value
...
    # Flat metadata tags for managed repo search and filtering
    tags:
      example: documentation
    # If true, reconcile mode must not remove this repository automatically
    protected: false
    # Optional instructions for subagents operating in this repo or path
    agent_instructions: Example text for documentation; replace before production use.
# Additional project component paths that may be useful in other projects.
components:
  -
    # Friendly name for the path or project
    name: example-name
...
    # Short description of the path or project
    description: Example text for documentation; replace before production use.
    # Project kind
    kind: monorepo
    # Reference in the current project for the target project, used in dependencies
    ref: example
    # Project path
    path: example-value
...
    # Project branches
    branches:
      - example-value
...
    # Project URL
    url: https://example.com/org/repo
...
    # Sync setting
    sync: true
    # Programming language
    language: python
    # Language version
    language_version: 3.12
    # Package manager used by the project
    package_manager: uv
    # Frameworks used by the project
    frameworks:
      - example-value
...
    # Provider used to discover this repository
    source_provider: example-value
...
    # Source namespace identifier (org/user/group)
    source_namespace: example-value
...
    # Provider-native repository identifier
    source_repo_id: example-value
...
    # Flat metadata tags for managed repo search and filtering
    tags:
      example: documentation
    # If true, reconcile mode must not remove this repository automatically
    protected: false
    # Optional instructions for subagents operating in this repo or path
    agent_instructions: Example text for documentation; replace before production use.
# Workspaces are a collection of projects that are related to each other. They are used to group projects together for a specific purpose. These are manually defined by the user. The internal workspace name is reservice
workspace:
  # Human-readable description of this workspace
  description: Portfolio of git repos and local publish paths managed by metagit.
  # Optional instructions for agents working in this workspace
  agent_instructions: Validate after manifest edits (metagit config validate). Default sync is fetch-only;\n
...
  # Workspace projects
  projects:
    -
      # Workspace project name
      name: portfolio
      # Human-readable description of this workspace project
      description: Git-backed applications and services.
...
      # Optional instructions for agents working in this workspace project
      agent_instructions: Delegate single-repo work to subagents with effective_agent_instructions.\n
...
      # Repository list
      repos:
        -
          # Friendly name for the path or project
          name: example-service
...
          # Short description of the path or project
          description: Sample git-backed service.
...
          # Project URL
          url: https://github.com/example-org/example-service.git
...
          # Sync setting
          sync: true
          # Optional instructions for subagents operating in this repo or path
          agent_instructions: Run tests before opening PRs; keep tags updated in this manifest.\n
    -
      # Workspace project name
      name: local
      # Human-readable description of this workspace project
      description: Local-only paths for static sites (no git remotes).
...
      # Optional override of app-config workspace.dedupe for this project (currently supports enabled only)
      dedupe:
        # When set, overrides workspace.dedupe.enabled from metagit.config.yaml for sync and layout under this project only
        enabled: false
      # Optional instructions for agents working in this workspace project
      agent_instructions: Do not git clone or pull repos in this project; paths are symlinks to user dirs.\nDedupe is disabled for this project (overrides workspace.dedupe in metagit.config.yaml).\n
      # Repository list
      repos:
        -
          # Friendly name for the path or project
          name: example-site
...
          # Short description of the path or project
          description: Sample static site published from a local folder.
          # Project path
          path: ~/Sites/example-site
...
          # Sync setting
          sync: true
          # Project kind
          kind: website
          # Optional instructions for subagents operating in this repo or path
          agent_instructions: Document build and publish steps here; update path if the site moves.\n
