SPRINT

Sprint S01 Plan — DASH.md 공식 스키마 명세

일시: 2026-03-26 | 주관: PM | 기술검토: CTO + Runtime(3) + Communication(4)

스프린트 목표

  • DASH.md JSON Schema v1 공식 정의 — 5-Layer(Meta/Trigger/Skin/Skill/Protocol) 전체
  • Kotlin DashManifest 데이터 클래스 — 런타임 파싱 기반 (S08 Runtime 연동 준비)
  • 단위 테스트 42 ALL PASS — 스키마 유효성 검증 전 계층 커버
  • 논의 사항 (사용자 확정)

    | # | 질문 | 결정 |

    |---|------|------|

    | 1 | JSON Schema 표준: Draft-07 vs 2020-12 | Draft-07 — ajv/jsonschema 최대 호환 |

    | 2 | Dash ID 최소 세그먼트 수 | 3개 — Android package 컨벤션 준수 (com.author.name) |

    | 3 | 파서 라이브러리 선정 시점 | S08에서 결정 — S01은 데이터 클래스만 정의 |

    사용자 컨펌: 2026-03-26 (Q1/Q2 컨펌 시 동시 확정)

    태스크 목록

    | # | 태스크 | 담당 | 완료 기준 | 상태 |

    |---|--------|------|----------|------|

    | 1 | docs/specs/DASH-schema-v1.json 작성 | CTO + Runtime | 5-Layer 전체 정의, additionalProperties: false | ✅ |

    | 2 | docs/specs/DASH-template.md 공식 템플릿 | CTO + Design | 주석 완비, 모든 필드 예시 포함 | ✅ |

    | 3 | docs/specs/sample-dashes/weather-dash.md | Runtime | 실제 동작 가능한 샘플 DASH.md | ✅ |

    | 4 | DashManifest.kt Kotlin 데이터 클래스 | Runtime | 5-Layer sealed class 구조, init 검증 | ✅ |

    | 5 | DashSchemaParserTest.kt 단위 테스트 | QA | 42/42 ALL PASS | ✅ |

    | 6 | scripts/validate-dash.sh CLI 도구 | CTO | python3/jsonschema 기반 실행 가능 | ✅ |

    | 7 | docs/specs/versioning-policy.md | CTO | v1→v2 이전 정책, 6개월 병행 지원 | ✅ |

    완료 기준 (Definition of Done)

  • [x] Meta 레이어: id(3+ 세그먼트), name, version(semver), category(12종), keywords, author
  • [x] Trigger 레이어: Always / Time / Location / TopicMatch / OrchestratorCall
  • [x] Skin 레이어: sizes(mini/standard/expanded), theme_aware, composable_entry
  • [x] Skill 레이어: entry, permissions(16종), local_state, allowed_apis(16종), quota
  • [x] Protocol 레이어: publish/subscribe(dot-separated topic + Name.vN schema), fusible_with, imports
  • [x] 스키마 버전링 규칙 (v1 → v2 호환 정책 문서)
  • [x] DASH.md validator CLI 도구
  • [x] 단위 테스트 42/42 ALL PASS (JVM, 에뮬레이터 불필요)
  • [x] 기존 85개 계측 테스트 무결성 유지
  • 리스크

    | 리스크 | 대응 |

    |--------|------|

    | YAML 파서 라이브러리 미선정 | S08 전까지 결정 (S01에서 데이터 클래스만 정의) |

    | ajv / jsonschema 미설치 환경 | validate-dash.sh 내 분기 처리 (구조 검사로 폴백) |