aida-demo-data은(는) 무엇을 하나요?
모델 등급: standard. 작은 스크립트나 앱 동작의 연쇄를 작성하는 데 주의가 필요하지만, 아웃라인 카드에서 데이터의 형태를 알게 되면 일상적인 작업입니다.
기본 경로: 앱 자체를 통해
-
하나의 워크스루에서만 사용하는 데이터 (선택할 수 있는 두 번째 경쟁자): 해당 워크스루 자체의
setup:단계에do:/check:/actions:문법으로steps와 동일하게 작성하며, 캡처 전에 실행되고 절대 녹화되지 않습니다.setup: { as: admin, steps: [...] }는 다른 역할로 로그인하여 실행됩니다. -
여러 워크스루가 필요로 하거나 워크스루가 종료된 후에도 남아 있어야 하는 데이터 ("Alex가 아침 블록에 있습니다"): 설정 파일의
states항목에 훅을 정의하여 앱의 자체 API를 통해 넣습니다(결정 15). 데이터베이스는 절대 사용하지 않습니다.states: { "alex-in-morning": { description: "Alex가 아침 블록에 있습니다", as: "admin", // 훅 자체의 로그인 세션 setup: "./states/alex-in-morning.mjs", // 해당 파일의 `setup` 내보내기, 없으면 기본값 check: "./states/alex-in-morning.mjs", // 해당 파일의 `check` 내보내기, 없으면 기본값 }, },훅은
ctx.request(로그인 세션이 포함된 API 클라이언트, 상대 경로는baseUrl기준으로 해석됨)와ctx.page,ctx.runId,ctx.env를 제공받습니다.check는 상태가 이미 존재하면 true를 반환하고 아무것도 변경하지 않습니다.setup은 멱등(idempotent)이어야 합니다("그렇게 되도록 보장"): 상태가 필요한 모든 캡처마다 실행되므로 이전 실행의 복사본을 먼저 삭제할 수 있습니다.as:가 없으면 훅은 워크스루의 자체 세션을 공유합니다. API를 통해 로그인하는 훅은as:를 다른 역할로 설정해야 하며, 그렇지 않으면 녹화에서 로그아웃됩니다. -
설정 단계에서 생성되며 실행 간에 충돌해서는 안 되는 레코드: 설정 데이터에
{{run.id}}를 사용하여 이름을 지정합니다(훅에서는ctx.runId). 이 값이 입력된 텍스트, 나레이션 또는 캡션에 도달하지 않도록 해야 합니다. 그렇지 않으면 실행마다 스크린샷이 변경됩니다. -
모든 값은
references/safety.md를 따릅니다:@example.com이메일, 예약된 가상 전화번호 범위, 가상의 이름. 실제 레코드를 이름만 바꿔서 복사하는 것을 시작점으로 삼지 마십시오. -
앱에서 지원하는 경우 전용 데모 계정 또는 워크스페이스를 사용하고, 프로덕션 계정은 절대 사용하지 마십시오. 빠른 모드(전용 데모 환경 없음)는 저장하기 전에 사용자에게 확인을 요청합니다.
시드 스크립트: 엔지니어의 명시적 요청이 있을 때만
- 엔지니어가 이름을 지정하여 요청한 경우에만 데이터베이스 직접 쓰기 시드 스크립트를 작성합니다(예: "데모 DB용 시드 스크립트 작성"). 기본 사용자나 바이브 코더에게는 절대 제공하지 않습니다. AIDA가 데이터베이스 접근을 필요로 하지 않는다는 것이 핵심입니다.
- 작성하는 경우: 데이터베이스 캡처 자체의 안전 검사가 허용하는 대상만 대상으로 하며(이 기계에서, 또는 사용자가 임시용으로 지정한 브랜치에서;
aida doctor가 어떤 것인지 표시), 동일한 안전한 데모 데이터 값을 사용하고, 워크스루 파일이 아닌 앱 자체의 시드 도구와 함께 배치합니다.
규칙
- 워크스루에서 읽기 전용으로 표시된 단계의 부작용으로 데이터를 생성하지 마십시오. 워크스루에 설정 데이터가 필요한 경우 명시적으로 만들고(
needs,setup:), 숨겨진 상태로 두지 마십시오. - 녹화된 워크스루에 정리(cleanup) 단계를 추가하지 마십시오. 데이터를 제거하는 워크스루는
clears로 명시합니다. 재실행 시 멱등 설정 훅 또는 데이터베이스 리셋을 통해 시작 데이터를 다시 얻습니다.
토큰 규칙
references/tokens.md를 참조하십시오. 작고 목표 지향적: 전체 스키마나 앱이 아닌 하나의 카드 데이터 형태에 집중합니다.