TL;DR

  • Yass(Yet Another Spec Syntax)는 AI 에이전트 기반 개발에서 원하는 동작을 사양으로 기록하고 TDD와 구현 생성을 구동하는 YAML 기반 사양 언어임.
  • 현재 초기 개발 단계이며, 언어 정의 파일·편집기 검증용 JSON Schema·사양 집합을 코딩 에이전트에 읽기 전용으로 제공하는 CLI로 구성됨.
  • macOS·Linux·Windows용 사전 빌드 바이너리를 제공하며, 설치 스크립트는 호스트 환경을 감지하고 최신 안정 릴리스를 검증한 뒤 설치함.
  • 코딩 에이전트는 Yass를 통해 새 사양 작성, 기존 사양 구현, 사양 변경의 세 가지 흐름을 수행하며, 구현 전 사양 검토가 계약 역할을 함.
  • Yass CLI와 언어 문서는 바이너리 내부에 포함되어 에이전트가 파일을 직접 열지 않고도 사양 형식과 작업 흐름을 파악하게 함.

Yass 개요

  • Yass(Yet Another Spec Syntax)는 AI 에이전트 기반 개발을 위한 YAML 기반 사양 언어임.
  • 사양은 원하는 동작을 기록하며, TDD(Test-Driven Development)와 구현 코드 생성을 구동하는 데 사용됨.
  • 현재 초기 개발 단계임.

포함된 구성

  • yass.yass.yaml — Yass 언어 자체로 정의된 Yass 언어 사양임.
  • yass.v1.schema.json.yass.yaml 파일의 편집기 검증을 위한 JSON Schema임.
  • cli/ — 기존 사양 집합을 코딩 에이전트에 제공하는 yass 명령줄 프로그램임.
  • 모든 사양 집합에 대해 읽기 전용으로 동작함.
  • 아래 설치 절차를 이용하거나 cli/HOWTORUN.txt에 따라 빌드하고 실행할 수 있음.

설치

  • 릴리스 페이지에서 macOS(arm64, amd64), Linux(arm64, amd64), Windows(amd64)용 사전 빌드 바이너리와 SHA-256 체크섬을 제공함.
  • 아래 어떤 설치 경로에서도 Go 툴체인이 필요하지 않음.

설치 스크립트

  • 다음 명령을 그대로 실행해 설치 스크립트를 내려받아 실행함.
  • curl -fsSL https://raw.githubusercontent.com/shakefu/yass/main/install.sh | sh
  • 설치 프로그램은 호스트 운영체제와 아키텍처를 감지하고, 최신 안정 릴리스에 맞는 아카이브를 다운로드한 뒤 릴리스에 게시된 체크섬으로 검증함.
  • /usr/local/bin에 쓰기 권한이 있으면 해당 위치에 설치하고, 그렇지 않으면 ~/.local/bin에 설치하며 필요한 PATH 설정을 안내함.
  • 버전을 고정하거나 설치 디렉터리를 지정하려면 다음 명령을 그대로 실행함.
  • curl -fsSL https://raw.githubusercontent.com/shakefu/yass/main/install.sh | sh -s -- --version v0.2.0 --bin-dir "$HOME/bin"
  • Windows에서는 릴리스 페이지에서 windows_amd64 ZIP 파일을 다운로드함.

Homebrew

  • 다음 명령으로 저장소를 추가하고 Yass를 설치함.
  • brew tap shakefu/yass https://github.com/shakefu/yass
  • brew install yass
  • Formula/yass.rb 수식은 릴리스마다 재생성되므로, brew update && brew upgrade yass를 실행하면 최신 릴리스로 이동함.

업데이트

  • 설치 프로그램으로 관리되거나 수동으로 배치된 바이너리는 다음 명령으로 자체 업데이트함.
  • yass update
  • 최신 안정 릴리스를 확인하고, 게시된 체크섬으로 다운로드를 검증한 뒤 바이너리를 제자리에서 교체함.
  • 업데이트에 실패하면 기존의 정상 설치 상태를 유지함.
  • Homebrew가 관리하는 바이너리는 변경하지 않고 해당 사실을 알리며, brew upgrade yass로 업데이트하도록 안내함.
  • 다음 명령으로 모든 설치 상태를 확인함.
  • yass --version

소스에서 설치

  • cli/HOWTORUN.txt에 따라 Go로 빌드함.

빠른 시작

  • Yass는 코딩 에이전트와 함께 작업하기 위한 도구임.
  • 원하는 내용을 말하면 에이전트가 서로 합의한 사양으로 기록하고, 이후 에이전트가 해당 사양과 정확히 일치하는 결과물을 구축함.
  • yass 명령은 에이전트가 프로젝트를 탐색하는 수단이며, 셸 명령을 실행할 수 있는 모든 에이전트와 함께 동작함.
  • 프로젝트의 에이전트 지침 파일(AGENTS.md, CLAUDE.md 등)에 다음과 같은 한 줄을 추가하면 충분함.
  • 사양을 작성·변경·구현하기 전에 인수 없이 yass를 실행함.
  • 원하는 작업을 요청하면 에이전트는 다음 세 가지 경로 중 하나를 선택함.
  • 새 작업 시작 — 아직 사양이 없는 프로젝트나 기능을 시작함.
  • 브레인스토밍 흐름을 실행함.
  • 작업의 목적을 묻고, 각 동작을 함께 검토하며, 사용자가 직접 답을 구성하기보다 수정할 수 있는 답을 제안함.
  • 사양을 읽고 동의하기 전에는 아무것도 빌드하지 않음.
  • 기존 사양 구현 — Yass를 통해 사양 집합을 한 번에 전체 파일로 읽지 않고 문서 단위로 읽은 뒤, 사양에 적힌 내용을 구축함.
  • 사양 변경 — 바이너리에 포함된 문서(Yass 문서)를 읽고 사양 파일을 편집한 뒤 yass validateyass lint로 확인함.
  • 사양을 먼저 검토함.
  • 사양은 코드가 구축되는 기준 계약이므로 결과가 잘못되었을 때 수정 지점은 대개 사양의 한 줄이며, 코드는 그에 따라 변경됨.

처음 접한 에이전트를 위한 CLI

  • 인수 없이 yass를 실행하면 프로그램의 개요, 현재 디렉터리가 속한 프로젝트, 사양 파일의 표기법, 사양 집합을 읽는 명령, 새 사양을 이끌어내는 흐름을 출력함.
  • 이를 통해 파일을 하나도 직접 열지 않고도 작업을 시작할 수 있음.
  • 언어를 정의하고 사양 작성 방법을 설명하는 문서는 바이너리 내부에 포함됨.
  • 해당 문서는 yass docs로 제공되므로 설치 위치와 관계없이 바이너리와 함께 이동함.
  • 사양을 이끌어내거나 작성하거나 변경할 때는 관련 문서를 읽음.
  • 이미 존재하는 사양을 기준으로 구현할 때는 해당 문서가 필요하지 않음.

라이선스

  • AGPL-3.0