# Knowledge-as-Code Project Configuration
# Edit this file to define your domain ontology, then run: node scripts/build.js

# ---------------------------------------------------------------------------
# Project identity
# ---------------------------------------------------------------------------
name: "Example Knowledge Base"
short_name: "example"
url: "https://example.com/"
repo: "https://github.com/your-org/your-repo"
description: "A structured reference tracking example entities across categories."

# ---------------------------------------------------------------------------
# Entity model — the ontology
#
# Every project has four core entity roles:
#   primary    — stable anchors (e.g., obligations, capabilities, controls)
#   container  — grouping entity (e.g., regulations, products, frameworks)
#   authority  — source entity (e.g., regulatory bodies, vendors, standards orgs)
#   secondary  — mapping entity connecting containers to primaries (e.g., provisions)
#
# The relationship is: Authority → Container → Secondary → Primary
# ---------------------------------------------------------------------------
entities:
  primary:
    name: Requirement
    plural: Requirements
    directory: requirements
    groups:
      - name: governance
        color: "#7c4dff"
        color_light: "#4527a0"
      - name: technical
        color: "#4fc3f7"
        color_light: "#0277bd"
      - name: operational
        color: "#ff6e40"
        color_light: "#bf360c"
    body_sections:
      - Summary
      - What Counts
      - What Does Not Count

  container:
    name: Framework
    plural: Frameworks
    directory: frameworks
    statuses:
      - name: active
        color: "#4caf50"
        color_light: "#1b7d1b"
      - name: draft
        color: "#ff9800"
        color_light: "#e65100"
      - name: deprecated
        color: "#607d8b"
        color_light: "#455a64"
    has_timeline: true
    scope_field: jurisdiction

  authority:
    name: Organization
    plural: Organizations
    directory: organizations

  secondary:
    # Secondary entities are defined inline in container files (as provision sections)
    # and in the mapping file — not as standalone .md files. The directory field is
    # unused by the build script; name/plural/relationship are used for display only.
    name: Provision
    plural: Provisions
    directory: provisions
    relationship: "implements"

# Mapping file — connects containers to primaries via secondaries
mapping:
  file: "mapping/index.yml"

# ---------------------------------------------------------------------------
# Site navigation
# ---------------------------------------------------------------------------
nav:
  - id: home
    label: Home
    href: index.html
  - id: containers
    label: Frameworks
    href: containers.html
  - id: primaries
    label: Requirements
    href: primaries.html
  - id: matrix
    label: Matrix
    href: matrix.html
  - id: timeline
    label: Timeline
    href: timeline.html
  - id: compare
    label: Compare
    href: compare.html
  - id: about
    label: About
    href: about.html
  - id: pattern
    label: Pattern
    href: pattern.html

# ---------------------------------------------------------------------------
# Bridge pages — SEO-targeted detail pages
# ---------------------------------------------------------------------------
bridges:
  requires: true
  compare: true
  applies_to:
    field: jurisdiction

# ---------------------------------------------------------------------------
# Theme colors
# ---------------------------------------------------------------------------
theme:
  accent: "#4fc3f7"
  accent_light: "#0055aa"
  accent_bg: "#0f3460"
  accent_bg_light: "#e6f2ff"

# ---------------------------------------------------------------------------
# Pattern page — describes the Knowledge as Code pattern
# ---------------------------------------------------------------------------
pattern:
  enabled: true
  canonical_url: "https://knowledge-as-code.com"
  examples:
    - name: "AI Tool Watch"
      url: "https://aitool.watch"
      description: "AI model capabilities across 12 products"
    - name: "Every AI Law"
      url: "https://everyailaw.com"
      description: "Global AI regulatory landscape"
    - name: "Meeting Standards Reference"
      url: "https://meetings.snapsynapse.com"
      description: "Meeting facilitation standards"

# ---------------------------------------------------------------------------
# Social / Open Graph meta tags
# ---------------------------------------------------------------------------
social:
  og_image: ""
  twitter_card: "summary_large_image"
  twitter_site: ""

# ---------------------------------------------------------------------------
# Verification — staleness detection for entity freshness
# ---------------------------------------------------------------------------
verification:
  staleness_days: 90

# ---------------------------------------------------------------------------
# Ontology framework — optional semantic layer (opt-in, zero cost when off)
#
# Adds @type to JSON API items and emits api/v1/context.jsonld.
# gist is a minimalist enterprise upper ontology by Semantic Arts (CC BY 4.0).
# Attribution required when publishing sites that use gist IRIs.
# To disable: set enabled: false (removes @type fields and context.jsonld).
# ---------------------------------------------------------------------------
ontology:
  enabled: true
  framework: "gist"
  base_iri: "https://ontologies.semanticarts.com/gist/"
  attribution: "Semantic Arts, Inc. gist ontology (CC BY 4.0) https://semanticarts.com/gist"
  entities:
    primary:
      gist_class: "gist:KnowledgeConcept"
    container:
      gist_class: "gist:Specification"
    authority:
      gist_class: "gist:Organization"
    secondary:
      gist_class: "gist:Commitment"

# ---------------------------------------------------------------------------
# Ecosystem — related projects shown on pattern/about pages
# ---------------------------------------------------------------------------
ecosystem:
  - name: "Knowledge as Code"
    url: "https://knowledge-as-code.com"
    description: "The pattern definition and community hub"
  - name: "Graceful Boundaries"
    url: "https://github.com/snapsynapse/graceful-boundaries"
    description: "How services communicate operational limits to humans and agents"
  - name: "Siteline"
    url: "https://siteline.to"
    description: "AI agent readiness scanner for websites"
