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
섹션 제목: “Bootstrap”설치할 때 자동으로 수행되므로 보통 따로 실행할 필요가 없습니다. 상태 확인이나 재생성이 필요할 때 프로젝트 폴더에서 실행합니다.
# 상태 확인 (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-tradercurl -fsSL https://nexus.bluewindsky.com/repository/evo-bin/workflow/t3/v1/install.sh | sh -s -- configGitLab 주소를 묻고, 입력하면 설치 기록(.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 배포distribution-manifest.json
섹션 제목: “distribution-manifest.json”배포할 때마다 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.1tag 파이프라인이 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-testWORKFLOW_BASE_URL="file://$PWD/dist" sh install.sh --location /tmp --name test-x --yespython3 scripts/verify-dist.py /tmp/workflow-project-test-x test-x답변은 문서를 근거로 만들지만 틀릴 수 있습니다. 출처 문서를 함께 확인하세요.