콘텐츠로 이동

Evo Workflow Template T3

원천 · framework/evomind/workflow/workflow-template-t3-gitlab기준 · 릴리스 v1.0.3커밋 · f0394de6파일 · README.md기준선 · 2026-11-12

Workflow Distribution(T3 variant, GitLab)을 새 프로젝트에 설치하는 템플릿입니다. 저장소를 복사하지 않고 install.sh 한 줄로 설치하며, 설치 직후 BOOTSTRAP.md 절차까지 자동으로 수행해 project binding(.agent-workflow/project.yaml)과 lock(.agent-workflow/lock.yaml)을 만듭니다.

  • 설치에는 sh, curl, tar만 필요합니다. Python은 필요 없습니다.
  • 업데이트(update)에는 3-way 병합을 위해 git이 추가로 필요합니다.
  • 프로젝트 이름은 표준 이름 규칙에 따라 workflow-project-<이름>으로 정해집니다.
경로 내용
AGENTS.md 에이전트 진입점 (T3 variant)
PROJECT-INITIALIZATION.md, BOOTSTRAP.md 프로젝트 초기화와 bootstrap 절차
distribution-manifest.json 배포 식별 값과 파일별 sha256 digest (빌드 시 생성)
.agent-workflow/standards/ 운영 표준 33종
.agent-workflow/profiles/, registry/, skills/, templates/, rules/ Workflow Profile 12종, 등록부, 스킬 9종, Task Contract 템플릿, 분류 규칙
.agent-workflow/schemas/, scripts/, runtime/ 스키마, 검증 스크립트, 검증 runtime

| tools/ | bootstrap 확인, development 검증, 테스트 도구 seed | | openwebui/ | OpenWebUI system prompt·knowledge projection | | .gitlab/, .gitlab-ci.yml | Issue 템플릿 11종, MR 템플릿 2종, 라벨 projection, 검증 CI | | .workflow.yml | 설치 기록(템플릿 버전, 프로젝트 이름, GitLab). 업데이트에 필요하므로 함께 커밋합니다 |

터미널 창
curl -fsSL https://nexus.bluewindsky.com/repository/evo-bin/workflow/t3/v1/install.sh | sh

설치 위치 → 프로젝트 이름(workflow-project- 뒤에 붙을 이름) → GitLab 프로젝트 URL(비우면 나중에 등록) → 확인 순서로 묻습니다. 설치가 끝나면 프로젝트 폴더는 git init(기본 브랜치 main)되고, GitLab을 전체 URL로 입력했다면 origin까지 연결됩니다.

질문 없이 설치:

터미널 창
curl -fsSL https://nexus.bluewindsky.com/repository/evo-bin/workflow/t3/v1/install.sh | sh -s -- \
--location ~/work --name stock-trader \
--gitlab-path https://git.bluewindsky.com/framework/evomind/workflow-project-stock-trader.git
curl -fsSL https://nexus.bluewindsky.com/repository/evo-bin/workflow/t3/v1/install.sh | sh -s -- --yes --name stock-trader
옵션 의미 지정하지 않으면
--location <path> 설치 위치(프로젝트 폴더를 만들 상위 폴더) 묻는다 (비우면 현재 폴더)
--name <name> workflow-project- 뒤에 붙을 이름. BOOTSTRAP의 project_id로도 쓴다. --project-id도 같은 뜻 묻는다
--gitlab-path <url|path> GitLab 프로젝트 URL 또는 <GROUP>/<PROJECT> (별칭 --gitlab-url) 묻는다 (비우면 나중에 config로 등록)
--version <ver> 설치할 템플릿 버전 v1 최신
--yes, -y 질문 없이 기본값으로 설치 (현재 폴더, GitLab 비움). --name 필수 빠진 값은 묻고 마지막에 확인

설치가 끝나면 BOOTSTRAP.md 절차(Step 1~4)를 자동으로 수행해 .agent-workflow/project.yaml과 lock.yaml을 만듭니다(bootstrap-complete). 프로젝트 ID는 --name 값입니다. Python 없이 셸로 계산하며, 값은 distribution-manifest.json에서 그대로 읽습니다.

설치할 때 자동으로 수행되므로 보통 따로 실행할 필요가 없습니다. 상태 확인이나 재생성이 필요할 때 프로젝트 폴더에서 실행합니다.

터미널 창
# 상태 확인 (bootstrap-complete면 그대로 둠, 없으면 생성)
curl -fsSL https://nexus.bluewindsky.com/repository/evo-bin/workflow/t3/v1/install.sh | sh -s -- bootstrap
# 다시 만들기 (update로 매니페스트가 바뀐 뒤 등)
curl -fsSL https://nexus.bluewindsky.com/repository/evo-bin/workflow/t3/v1/install.sh | sh -s -- bootstrap --rebootstrap
파일 내용
.agent-workflow/project.yaml (DC-6) project_id, 사용하는 배포(workflow)와 그 distribution_digest, consumer 목록
.agent-workflow/lock.yaml (DC-7) release_version, source_revision, manifest_digest, binding_digest, lock_digest

이미 두 파일이 있으면 덮어쓰지 않습니다. 다시 만드는 것은 --rebootstrap으로 명시했을 때만 합니다(BOOTSTRAP.md의 “explicit human re-bootstrap 결정”).

GitLab 프로젝트 나중에 등록 (config)

섹션 제목: “GitLab 프로젝트 나중에 등록 (config)”
터미널 창
cd workflow-project-stock-trader
curl -fsSL https://nexus.bluewindsky.com/repository/evo-bin/workflow/t3/v1/install.sh | sh -s -- config

GitLab 주소를 묻고, 입력하면 설치 기록(.workflow.yml)과 origin remote를 함께 설정합니다. origin이 이미 있으면 그 주소를 기본값으로 제안합니다. 질문 없이 하려면 config --gitlab-path <URL>을 사용합니다. URL에 인증 정보가 들어 있어도 출력·파일·remote에는 인증 정보를 뗀 주소만 남습니다.

터미널 창
curl -fsSL https://nexus.bluewindsky.com/repository/evo-bin/workflow/t3/v1/install.sh | sh -s -- update

설치했던 버전과 새 버전을 비교해 3-way 병합합니다. 프로젝트에서 수정하지 않은 파일은 교체되고, 함께 수정한 파일은 병합되며, 같은 위치를 수정했으면 충돌 표시를 남기고 종료 코드 2로 끝납니다. distribution-manifest.json도 새 버전의 값으로 바뀌므로 lock.yaml이 이전 배포를 가리키게 됩니다. 이때 update가 bootstrap-required를 알려 주므로, 변경을 확인한 뒤 bootstrap --rebootstrap으로 다시 만듭니다.

template/ 설치되는 내용 (distribution-manifest.json 제외)
install.sh 설치·업데이트·config 스크립트 (Nexus에 배포)
scripts/build-manifest.py template/의 실제 파일로 distribution-manifest.json 생성
scripts/build-dist.sh 배포 산출물(tar.gz, sha256sums.txt, latest, install.sh) 생성
scripts/verify-dist.py 설치 결과의 매니페스트 digest, BOOTSTRAP 문서(설치된 project.yaml/lock.yaml 포함) 검증
.gitlab-ci.yml 빌드·설치·검증 테스트 + tag 배포

배포할 때마다 scripts/build-manifest.py가 실제 파일로 매니페스트를 생성합니다. 저장소에 매니페스트를 직접 커밋하지 않으므로 내용과 digest가 어긋나지 않습니다.

필드 값
distribution_id workflow-template-t3-gitlab-<버전>
release_version, content_version tag 버전
source_revision 빌드한 git commit (40-hex)
outputs[].digest sha256: + 파일 바이트의 sha256
content_release_id sha256: + sha256(canonical_json(outputs))
distribution_digest sha256: + sha256(canonical_json({distribution_id, release_version, source_revision, outputs}))

canonical_json(x) = json.dumps(x, sort_keys=True, separators=(",", ":"), ensure_ascii=False) 입니다.

main에 push하면 CI가 매니페스트를 생성해 템플릿을 빌드·설치하고, 매니페스트 digest·BOOTSTRAP 정합성(scripts/verify-dist.py)과 설치된 프로젝트의 검사를 실행합니다. 배포는 버전 tag로 합니다.

터미널 창
git tag v1.0.1 && git push origin v1.0.1

tag 파이프라인이 Nexus evo-bin/workflow/t3/v<major>/에 install.sh, latest, <ver>/workflow-template-t3-gitlab-<ver>.tar.gz, <ver>/sha256sums.txt를 올립니다(latest는 마지막). 자동 배포에는 프로젝트 CI/CD 변수 NEXUS_USER, NEXUS_PASSWORD가 필요합니다.

로컬에서 산출물만 만들고 설치해 보기:

터미널 창
sh scripts/build-dist.sh 0.0.0-test
WORKFLOW_BASE_URL="file://$PWD/dist" sh install.sh --location /tmp --name test-x --yes
python3 scripts/verify-dist.py /tmp/workflow-project-test-x test-x