InfoGrab DocsInfoGrab Docs

AI 개발 원칙 매니페스트 참조

요약

원칙 동기화는 .ai/principles/manifest.yml 을 읽어 어떤 원칙을 생성할지, 각 원칙이 어떤 소스 파일에서 파생되는지, 자동 생성 머지 리퀘스트를 어떻게 열지 결정합니다. 온보딩 흐름은 AI 개발 원칙을 참고합니다.

원칙 동기화는 .ai/principles/manifest.yml 을 읽어 어떤 원칙을 생성할지, 각 원칙이 어떤 소스 파일에서 파생되는지, 자동 생성 머지 리퀘스트를 어떻게 열지 결정합니다.

온보딩 흐름은 AI 개발 원칙을 참고합니다.

최상위 키#

키 타입 필수 여부 설명
auto_mr map 예 예약된 동기화에서 열리는 머지 리퀘스트 설정.
principles map 예 원칙 슬러그에서 원칙 항목으로의 맵. 원칙 항목을 참고합니다.
static_entries list 아니요 에이전트 컨텍스트 로딩 스킬에 포함되는, 수동으로 관리되는 파일 목록.

원칙 항목#

principles: 아래의 각 키는 슬러그입니다. 값은 다음 키를 가진 맵입니다.

키 타입 필수 여부 설명
description string 예 에이전트 라우팅 테이블에 사용되는 한 줄 요약. 대문자로 시작하고 마침표로 끝내지 않습니다.
group string 예 라우팅 테이블에서 관련 원칙을 묶는 데 사용되는 그룹 레이블. 예: Database, Backend, Frontend.
sources list of maps 예 원칙의 소스 문서 파일 목록. 소스 항목을 참고합니다.
file_filters list of strings 아니요 원칙이 적용되는 리포지터리 경로를 식별하는 Glob 패턴. 동기화는 이를 사용해 드리프트 탐지 범위를 지정합니다.
baseline string 아니요 수작업으로 관리하는 규칙이 담긴 파일 경로. 디스틸러는 baseline 콘텐츠를 원문 그대로 보존합니다. Baseline 파일을 참고합니다.
prerequisite boolean 아니요 true 이면 라우팅 테이블이 이 원칙을 같은 그룹의 다른 모든 원칙에 대한 사전 요구 사항으로 표시하고, 디스틸러는 해당 그룹에서 사전 요구 사항이 아닌 모든 디스틸 파일 앞에 이를 참조하는 노트를 추가합니다. 기본값: false.
owner_team string 아니요 소스 문서를 소유한 팀의 CODEOWNERS 핸들. 동기화는 이 값으로 원칙을 묶고, 팀마다 머지 리퀘스트를 하나씩 열며, CODEOWNERS를 통해 이 팀으로 승인을 라우팅합니다.
secondary_teams list of strings 아니요 소스 문서가 둘 이상의 팀에 걸쳐 있을 때 추가하는 CODEOWNERS 핸들. 머지 리퀘스트가 이 그룹에 알림을 보내지 않도록 "Request a review from" 섹션에 인라인 코드로 표시됩니다.
fallback_ping_team boolean 아니요 소스 문서 작성자가 어떤 사용자로도 확인되지 않을 때의 대체 핑 동작. true(기본값)이면 머지 리퀘스트 요약에서 owner_team 핸들을 멘션합니다. false 이면 실행할 때마다 대규모 그룹에 알림이 가지 않도록 멘션되지 않는 팀 슬러그를 사용합니다.
team_slug string 아니요 팀별 브랜치와 머지 리퀘스트 제목에 사용되는 짧고 URL에 안전한 이름. 기본값은 owner_team의 마지막 경로 세그먼트입니다. 마지막 세그먼트가 일반적인 값(예: approvers)이어서 팀 간에 충돌할 수 있으면 이 값을 설정합니다.

소스 항목#

sources:의 각 항목은 다음 키를 가진 맵입니다.

키 타입 필수 여부 설명
path string 예 리포지터리 루트를 기준으로 한 소스 문서 파일의 리포지터리 경로.
url string 예 소스 파일의 docs.gitlab.com 표준 URL. 디스틸된 파일이 이 URL로 다시 링크되므로 리뷰어가 게시된 문서와 규칙을 대조할 수 있습니다.

자동 머지 리퀘스트 설정#

auto_mr: 맵은 예약된 동기화가 머지 리퀘스트를 여는 방식을 제어합니다.

키 타입 필수 여부 설명
branch_prefix string 예 소스 브랜치 이름의 접두사. 동기화는 열려 있는 팀 또는 툴링 브랜치를 재사용하거나, 새로 만들 때 실행 날짜를 덧붙입니다.
title_template string 예 머지 리퀘스트 제목 템플릿. %{date} 보간을 지원합니다.
labels list of strings 예 머지 리퀘스트에 적용되는 레이블.
remove_source_branch boolean 예 true 이면 머지 리퀘스트가 머지된 후 소스 브랜치가 삭제됩니다.

머지 리퀘스트 리뷰어#

팀별 머지 리퀘스트는 해당 원칙을 마지막으로 디스틸한 이후 소스 문서를 변경한 사람에게 핑을 보냅니다. 동기화는 이전 디스틸 시점과 대상 브랜치 사이 구간의 커밋 작성자를 GitLab GraphQL API로 조회하고, 연결된 GitLab 사용자를 머지 리퀘스트 요약에서 멘션합니다. 이는 공개 이메일뿐 아니라 계정에 연결된 모든 확인된 이메일을 기준으로 대조합니다. 디스틸러는 선언된 모든 SSOT 경로에 걸쳐 기여자별 최신 커밋을 유지하고 그 날짜로 기여자의 순위를 매긴 다음, 최대 4명의 리뷰어를 선정합니다. 동기화는 봇 계정, 알려진 서비스 계정의 소규모 거부 목록에 해당하는 작성자, 커밋 이메일이 어떤 GitLab 계정에도 연결되지 않은 작성자를 건너뜁니다.

어떤 작성자도 사용자로 확인되지 않으면 요약은 owner_team에 대한 fallback_ping_team 동작으로 대체됩니다. 승인은 항상 CODEOWNERS를 통해 owner_team으로 라우팅되므로, 연락이 닿지 않는 작성자 때문에 머지 리퀘스트가 막히는 일은 없습니다.

정적 항목#

static_entries: 아래에 나열된 파일은 에이전트 컨텍스트 로딩 스킬에서 참조하지만 동기화가 생성하지는 않습니다. 소스 문서에서 파생되지 않고 .ai/ 아래에서 수작업으로 관리하는 주제별 모듈에 이 목록을 사용합니다.

키 타입 필수 여부 설명
description string 예 로딩을 트리거하는 작업 설명. 예: Git, commits, or branches.
path string 예 리포지터리 루트를 기준으로 한 파일의 리포지터리 경로.

예시#

최소 원칙 항목#

principles:
  rest-api:
    description: REST API design and conventions
    group: API
    sources:
      - path: doc/development/api_styleguide.md
        url: https://docs.gitlab.com/development/api_styleguide/

모든 필드를 포함한 원칙 항목#

principles:
  database-migrations:
    description: Database migration patterns and zero-downtime safety
    group: Database
    prerequisite: false
    file_filters:
      - 'db/migrate/**/*.rb'
      - 'db/post_migrate/**/*.rb'
    baseline: .ai/principles/baselines/database-migrations.md
    sources:
      - path: doc/development/migration_style_guide.md
        url: https://docs.gitlab.com/development/migration_style_guide/
      - path: doc/development/database/avoiding_downtime_in_migrations.md
        url: https://docs.gitlab.com/development/database/avoiding_downtime_in_migrations/

자동 머지 리퀘스트 블록#

auto_mr:
  branch_prefix: docs-sync/principles
  title_template: "Update AI development principles from SSOT (%{date})"
  labels:
    - ai-agent
    - documentation
    - type::maintenance
  remove_source_branch: true

정적 항목 블록#

static_entries:
  - description: Git, commits, or branches
    path: .ai/git.md

검증#

디스틸러는 로드 시점에 매니페스트를 검증하며 다음 경우에 오류와 함께 중단합니다.

  • auto_mr: 블록이 없거나 필수 키 중 하나가 빠진 경우.
  • 원칙에 sources: 키가 없거나 sources:가 비어 있는 경우.

이 검증은 머지 시점이 아니라 동기화 시점에 실행됩니다. 즉, 잘못된 매니페스트 항목은 이를 도입한 머지 리퀘스트를 막는 것이 아니라 다음 예약(또는 수동) 동기화 실행을 실패시킵니다.

관련 주제#

AI 개발 원칙 매니페스트 참조

GitLab v19.4
원문 보기

요약

원칙 동기화는 .ai/principles/manifest.yml 을 읽어 어떤 원칙을 생성할지, 각 원칙이 어떤 소스 파일에서 파생되는지, 자동 생성 머지 리퀘스트를 어떻게 열지 결정합니다. 온보딩 흐름은 AI 개발 원칙을 참고합니다.

원칙 동기화는 .ai/principles/manifest.yml 을 읽어 어떤 원칙을 생성할지, 각 원칙이 어떤 소스 파일에서 파생되는지, 자동 생성 머지 리퀘스트를 어떻게 열지 결정합니다.

온보딩 흐름은 AI 개발 원칙을 참고합니다.

최상위 키#

키 타입 필수 여부 설명
auto_mr map 예 예약된 동기화에서 열리는 머지 리퀘스트 설정.
principles map 예 원칙 슬러그에서 원칙 항목으로의 맵. 원칙 항목을 참고합니다.
static_entries list 아니요 에이전트 컨텍스트 로딩 스킬에 포함되는, 수동으로 관리되는 파일 목록.

원칙 항목#

principles: 아래의 각 키는 슬러그입니다. 값은 다음 키를 가진 맵입니다.

키 타입 필수 여부 설명
description string 예 에이전트 라우팅 테이블에 사용되는 한 줄 요약. 대문자로 시작하고 마침표로 끝내지 않습니다.
group string 예 라우팅 테이블에서 관련 원칙을 묶는 데 사용되는 그룹 레이블. 예: Database, Backend, Frontend.
sources list of maps 예 원칙의 소스 문서 파일 목록. 소스 항목을 참고합니다.
file_filters list of strings 아니요 원칙이 적용되는 리포지터리 경로를 식별하는 Glob 패턴. 동기화는 이를 사용해 드리프트 탐지 범위를 지정합니다.
baseline string 아니요 수작업으로 관리하는 규칙이 담긴 파일 경로. 디스틸러는 baseline 콘텐츠를 원문 그대로 보존합니다. Baseline 파일을 참고합니다.
prerequisite boolean 아니요 true 이면 라우팅 테이블이 이 원칙을 같은 그룹의 다른 모든 원칙에 대한 사전 요구 사항으로 표시하고, 디스틸러는 해당 그룹에서 사전 요구 사항이 아닌 모든 디스틸 파일 앞에 이를 참조하는 노트를 추가합니다. 기본값: false.
owner_team string 아니요 소스 문서를 소유한 팀의 CODEOWNERS 핸들. 동기화는 이 값으로 원칙을 묶고, 팀마다 머지 리퀘스트를 하나씩 열며, CODEOWNERS를 통해 이 팀으로 승인을 라우팅합니다.
secondary_teams list of strings 아니요 소스 문서가 둘 이상의 팀에 걸쳐 있을 때 추가하는 CODEOWNERS 핸들. 머지 리퀘스트가 이 그룹에 알림을 보내지 않도록 "Request a review from" 섹션에 인라인 코드로 표시됩니다.
fallback_ping_team boolean 아니요 소스 문서 작성자가 어떤 사용자로도 확인되지 않을 때의 대체 핑 동작. true(기본값)이면 머지 리퀘스트 요약에서 owner_team 핸들을 멘션합니다. false 이면 실행할 때마다 대규모 그룹에 알림이 가지 않도록 멘션되지 않는 팀 슬러그를 사용합니다.
team_slug string 아니요 팀별 브랜치와 머지 리퀘스트 제목에 사용되는 짧고 URL에 안전한 이름. 기본값은 owner_team의 마지막 경로 세그먼트입니다. 마지막 세그먼트가 일반적인 값(예: approvers)이어서 팀 간에 충돌할 수 있으면 이 값을 설정합니다.

소스 항목#

sources:의 각 항목은 다음 키를 가진 맵입니다.

키 타입 필수 여부 설명
path string 예 리포지터리 루트를 기준으로 한 소스 문서 파일의 리포지터리 경로.
url string 예 소스 파일의 docs.gitlab.com 표준 URL. 디스틸된 파일이 이 URL로 다시 링크되므로 리뷰어가 게시된 문서와 규칙을 대조할 수 있습니다.

자동 머지 리퀘스트 설정#

auto_mr: 맵은 예약된 동기화가 머지 리퀘스트를 여는 방식을 제어합니다.

키 타입 필수 여부 설명
branch_prefix string 예 소스 브랜치 이름의 접두사. 동기화는 열려 있는 팀 또는 툴링 브랜치를 재사용하거나, 새로 만들 때 실행 날짜를 덧붙입니다.
title_template string 예 머지 리퀘스트 제목 템플릿. %{date} 보간을 지원합니다.
labels list of strings 예 머지 리퀘스트에 적용되는 레이블.
remove_source_branch boolean 예 true 이면 머지 리퀘스트가 머지된 후 소스 브랜치가 삭제됩니다.

머지 리퀘스트 리뷰어#

팀별 머지 리퀘스트는 해당 원칙을 마지막으로 디스틸한 이후 소스 문서를 변경한 사람에게 핑을 보냅니다. 동기화는 이전 디스틸 시점과 대상 브랜치 사이 구간의 커밋 작성자를 GitLab GraphQL API로 조회하고, 연결된 GitLab 사용자를 머지 리퀘스트 요약에서 멘션합니다. 이는 공개 이메일뿐 아니라 계정에 연결된 모든 확인된 이메일을 기준으로 대조합니다. 디스틸러는 선언된 모든 SSOT 경로에 걸쳐 기여자별 최신 커밋을 유지하고 그 날짜로 기여자의 순위를 매긴 다음, 최대 4명의 리뷰어를 선정합니다. 동기화는 봇 계정, 알려진 서비스 계정의 소규모 거부 목록에 해당하는 작성자, 커밋 이메일이 어떤 GitLab 계정에도 연결되지 않은 작성자를 건너뜁니다.

어떤 작성자도 사용자로 확인되지 않으면 요약은 owner_team에 대한 fallback_ping_team 동작으로 대체됩니다. 승인은 항상 CODEOWNERS를 통해 owner_team으로 라우팅되므로, 연락이 닿지 않는 작성자 때문에 머지 리퀘스트가 막히는 일은 없습니다.

정적 항목#

static_entries: 아래에 나열된 파일은 에이전트 컨텍스트 로딩 스킬에서 참조하지만 동기화가 생성하지는 않습니다. 소스 문서에서 파생되지 않고 .ai/ 아래에서 수작업으로 관리하는 주제별 모듈에 이 목록을 사용합니다.

키 타입 필수 여부 설명
description string 예 로딩을 트리거하는 작업 설명. 예: Git, commits, or branches.
path string 예 리포지터리 루트를 기준으로 한 파일의 리포지터리 경로.

예시#

최소 원칙 항목#

principles:
  rest-api:
    description: REST API design and conventions
    group: API
    sources:
      - path: doc/development/api_styleguide.md
        url: https://docs.gitlab.com/development/api_styleguide/

모든 필드를 포함한 원칙 항목#

principles:
  database-migrations:
    description: Database migration patterns and zero-downtime safety
    group: Database
    prerequisite: false
    file_filters:
      - 'db/migrate/**/*.rb'
      - 'db/post_migrate/**/*.rb'
    baseline: .ai/principles/baselines/database-migrations.md
    sources:
      - path: doc/development/migration_style_guide.md
        url: https://docs.gitlab.com/development/migration_style_guide/
      - path: doc/development/database/avoiding_downtime_in_migrations.md
        url: https://docs.gitlab.com/development/database/avoiding_downtime_in_migrations/

자동 머지 리퀘스트 블록#

auto_mr:
  branch_prefix: docs-sync/principles
  title_template: "Update AI development principles from SSOT (%{date})"
  labels:
    - ai-agent
    - documentation
    - type::maintenance
  remove_source_branch: true

정적 항목 블록#

static_entries:
  - description: Git, commits, or branches
    path: .ai/git.md

검증#

디스틸러는 로드 시점에 매니페스트를 검증하며 다음 경우에 오류와 함께 중단합니다.

  • auto_mr: 블록이 없거나 필수 키 중 하나가 빠진 경우.
  • 원칙에 sources: 키가 없거나 sources:가 비어 있는 경우.

이 검증은 머지 시점이 아니라 동기화 시점에 실행됩니다. 즉, 잘못된 매니페스트 항목은 이를 도입한 머지 리퀘스트를 막는 것이 아니라 다음 예약(또는 수동) 동기화 실행을 실패시킵니다.

관련 주제#