AI 에이전트 작업 출력을 위한 마크업 언어를 만들었습니다
Source: Dev.to
소개
Claude나 ChatGPT에 프로젝트 계획을 도와달라고 할 때마다… 혼란스러웠습니다.
가끔은 마크다운 리스트, 가끔은 번호 매긴 단계, 가끔은 JSON, 가끔은 중간에 작업이 숨어 있는 긴 텍스트가 나왔죠.
제가 원했던 것은:
- 출력물을 신뢰성 있게 파싱하기
- 다양한 방식으로 시각화하기
- 복사‑붙여넣기 없이 진행 상황을 추적하기
그래서 TaskML을 만들었습니다.
TaskML 예시
TaskML은 작업 관리를 위해 설계된 가벼운 마크업 언어입니다. 인간이 읽기 쉽고, AI가 쓰기 편하며, 즉시 파싱할 수 있습니다.
@project Website Redesign
@sprint Week 1
[ ] Design homepage #p0 @alice
[x] Create wireframes
[~] Build prototype ~2h
[ ] Write copy #p1 @bob ~4h !2024-02-15
문법 개요
@project/@sprint– 컨텍스트 블록[ ]– 미완료 작업[x]– 완료된 작업[~]– 진행 중인 작업[!]– 차단된 작업#p0– 우선순위 (p0= 중요,p3= 낮음)@alice– 담당자~2h– 시간 추정치!2024-02-15– 마감일- 들여쓰기 – 하위 작업
시각화
TaskML은 총 일곱 가지 뷰를 지원합니다:
- 상태 표시기와 메타데이터가 포함된 고전적인 중첩 작업 리스트.
- 작업 상태(미완료, 진행 중, 완료)에 따라 자동으로 컬럼을 배치.
- 기간과 마감일을 보여주는 간트 차트 스타일 뷰.
- 상태, 우선순위, 담당자 등을 정렬할 수 있는 스프레드시트 스타일.
- 부모‑자식 관계를 나타내는 계층적 뷰.
- 작업 의존성을 시각화한 노드 그래프.
- 전체 작업 수, 완료 비율, 시간 추정치, 우선순위 분포 등 통계를 보여주는 대시보드.
AI와 함께 TaskML 사용하기
간단한 시스템 프롬프트만으로 모든 AI에게 TaskML 출력을 가르칠 수 있습니다:
작업, 프로젝트, 또는 할 일을 추적할 때는 항상 TaskML 형식을 사용하세요:
@project Project Name @sprint Sprint Name (optional) Tasks use checkbox syntax: [ ] Pending task [x] Completed task [~] In progress task [!] Blocked task Add metadata inline: - #p0‑#p3 for priority - @name for assignee - ~Xh for estimates - !YYYY‑MM‑DD for due datesClaude, ChatGPT, Cursor 등 많은 도구가 즉시 이를 받아들입니다.
구현 세부 사항
- 런타임 의존성 제로
- 압축 후 ~15 KB (gzip)
- TypeScript 네이티브
- Node.js와 브라우저 모두에서 동작
- MIT 라이선스
설치
npm install taskml
기본 사용법 (TypeScript/JavaScript)
import { parse, render } from 'taskml';
const doc = parse(`
@project My Tasks
[ ] First task
[x] Done task
`);
// Render to HTML (e.g., Kanban view)
const html = render(doc, { view: 'kanban' });
인터랙티브 플레이그라운드
**taskml.dev/playground**에서 TaskML을 직접 체험해 보세요. 플레이그라운드에는 다음이 포함됩니다:
- 구문 강조가 적용된 실시간 에디터
- 일곱 가지 뷰 전부
- 템플릿 예시
- 원클릭 복사/공유
로드맵
- VS Code 확장 프로그램
- Obsidian 플러그인
- React 컴포넌트
- 더 많은 AI 통합
- CLI 도구
링크
행동 촉구
TaskML을 사용해 무언가를 만든다면 공유해 주세요.
GitHub에 별 하나만 달아 주셔도 큰 힘이 됩니다.