# Assistant DAG Macro Artifacts (아이디어)

## 아이디어

assistant CLI가 DAG를 단순한 외부 워크플로 실행기로만 쓰는 것이 아니라, 반복 가능하고 검증된 작업 절차를 assistant CLI 안에서 다시 사용할 수 있는 매크로 형태의 작업 자산으로 되가져오는 흐름을 구상한다.

큰 흐름은 다음과 같다.

1. 사용자가 assistant에게 반복적이거나 복잡한 작업을 요청한다.
2. assistant가 DAG 쪽 기능을 이용해 절차를 구조화하고 실행 또는 검증한다.
3. 성공한 절차가 재사용 가능한 macro-like artifact가 된다.
4. 이후 사용자는 assistant CLI에서 그 artifact를 매크로 또는 반복 가능한 스킬처럼 다시 호출한다.

핵심은 “DAG를 호출한다”가 아니라 “DAG로 검증된 절차가 assistant CLI 사용성을 높이는 재사용 자산으로 돌아온다”는 점이다.

## 중요한 제약

DAG는 임의의 작업을 자유롭게 만들어내는 시스템이 아니다. 미리 준비된 노드나 capability를 조합하는 방식에 강하다. 따라서 assistant가 수행하는 모든 작업을 DAG로 바꾸는 방향은 맞지 않다.

현실적인 역할 분리는 다음에 가깝다.

- assistant: 자유형 판단, 코드베이스 이해, 계획 변경, 예외 대응
- DAG-backed macro: 준비된 노드로 표현 가능한 반복 절차, 검증 루틴, 변환 파이프라인, 정형화된 실행 흐름

따라서 macro 후보는 다음 조건을 만족할 때 적합하다.

- 반복적으로 실행할 가치가 있다.
- 입력과 출력이 어느 정도 명확하다.
- 필요한 단계가 준비된 DAG 노드나 capability로 표현 가능하다.
- 실행 전 사용자가 무엇이 일어날지 이해할 수 있다.
- 이전 실행 또는 검증 결과를 근거로 재사용할 수 있다.

노드나 capability가 준비되지 않은 임의의 코딩 판단 작업은 macro로 승격하지 않는다. 그런 작업은 assistant가 계속 직접 판단하고 수행하는 영역으로 남긴다.

## 가능한 제품 시나리오

### 코딩 검증 매크로

사용자가 반복되는 검증 루틴을 assistant에게 요청한다.

예:

- package 문서 업데이트 여부 확인
- 관련 테스트 실행
- typecheck 실행
- 변경 위험 요약
- PR 전 점검 요약

assistant는 이 절차 중 정형화 가능한 부분을 DAG로 구조화하거나 검증한다. 성공한 뒤에는 프로젝트용 매크로로 남길 수 있다.

나중에 사용자는 다음처럼 요청할 수 있다.

```text
docs verification macro를 이 패키지에 돌려줘.
```

assistant는 매번 절차를 새로 추론하지 않고, 검증된 절차를 재사용한다.

### 미디어 처리 매크로

이미지나 영상 처리처럼 DAG가 잘 맞는 영역에서는 더 직접적인 재사용이 가능하다.

예:

- 상품 이미지 정리
- 배경 제거 후 규격별 리사이즈
- 이미지 편집 결과 비교
- 짧은 영상 생성 후 결과 요약

한 번 검증된 미디어 처리 흐름은 이후 assistant CLI에서 “이 폴더에 product-image cleanup macro 적용해줘”처럼 호출될 수 있다.

### 프로젝트별 자동화

저장소마다 반복되는 작업 절차가 다르다. 특정 프로젝트에서 검증된 절차는 그 프로젝트의 assistant CLI 경험 안에서만 보이는 매크로가 될 수 있다.

예:

- 릴리즈 전 점검
- 문서 동기화 점검
- 특정 패키지 변경 후 필수 테스트 묶음
- 반복되는 데이터/asset 변환 작업

이 매크로는 전역 built-in 명령처럼 보이면 안 된다. 프로젝트 맥락에서 유효한 작업 자산으로 보여야 한다.

## 사용자가 알아야 할 정보

매크로를 실행하기 전에 사용자는 최소한 다음을 알아야 한다.

- 이 매크로가 어떤 작업을 수행하는가
- 어떤 입력이 필요한가
- 어떤 파일, asset, 상태를 변경하거나 생성할 수 있는가
- 어떤 검증을 수행하는가
- 마지막으로 언제 검증되었는가
- 현재 프로젝트에서도 여전히 안전하게 실행할 수 있는가
- 실행 후 assistant가 어떤 요약을 돌려줄 것인가

## 피해야 할 방향

- 모든 DAG 실행을 자동으로 매크로로 저장한다.
- 매크로가 무엇을 하는지 숨긴 채 실행한다.
- 오래된 매크로를 검증 상태 표시 없이 재사용한다.
- 프로젝트별 매크로를 전역 built-in 명령처럼 보이게 한다.
- 상태 변경 작업에 대한 사용자 승인을 매크로라는 이유로 우회한다.
- 노드가 준비되지 않은 자유형 코딩 판단 작업까지 억지로 DAG 매크로로 만든다.

## 남은 질문

- 어떤 순간에 “이 작업은 매크로로 저장할 만하다”고 판단할 수 있는가?
- 사용자가 명시적으로 저장해야 하는가, assistant가 제안해야 하는가?
- “이전에 검증됨”과 “지금 안전하게 실행 가능함”을 어떻게 구분해 보여줄 것인가?
- 프로젝트별 매크로와 사용자 전역 매크로를 어떻게 구분할 것인가?
- 매크로가 오래되었거나 프로젝트 구조가 바뀌었을 때 어떻게 갱신할 것인가?
- 코딩 검증 루틴과 미디어 처리 루틴을 같은 제품 언어로 설명할 수 있는가?

## 현재 판단

이 아이디어는 아직 실행 백로그가 아니다. 현재 단계에서는 제품 방향을 저장해두는 초기 아이디어다.

가장 중요한 초점은 다음이다.

```text
assistant가 DAG를 이용해 반복 가능한 절차를 검증하고,
그 절차를 assistant CLI에서 다시 쓰는 작업 자산으로 만든다.
```

다만 DAG는 준비된 노드를 조합하는 시스템이라는 제약이 있으므로, 이 구상은 자유형 작업 전체가 아니라 반복 가능하고 구조화 가능한 하위 절차에 집중해야 한다.
