Isaac 모딩 워크플로
The Binding of Isaac API를 이름이 그럴듯하다고 해서 절대 임의로 만들지 마십시오. 그럴듯한 이름은 증거가 아닙니다. 검색하십시오; 만약 발견되지 않으면 UNVERIFIED라고 표시하십시오.
작업 경로 설정
- 사용자의 모드를 수정하기 전에 검사:
metadata.xml,main.lua, 컨텐츠 XML, 포함 파일, 의존성 복사본, 대상 및 버전 정보. - 대상 빌드와 REPENTOGON/라이브러리 사용 가능 여부를 식별합니다. 지정되지 않은 경우, 저장소 핀을 연구 기준선으로만 사용합니다. 사용자의 설치된 런타임이 해당 핀과 일치하거나 미래 호환성을 가진다고 주장하지 마십시오.
- 요청을 범위, 소유권, 수명, 협동, 리소스, 의존성, 호환성, 성능 및 테스트 요구사항으로 변환합니다. 보스/캐릭터/스테이지 또는 대규모 시스템의 경우 먼저 짧은 명세서를 작성합니다. 시각적 요소가 변경되면 필요한 에셋을 목록화하고 그래픽 제작 규칙을 읽습니다. 필요한 경우에만 아트를 생성합니다; 최종 PNG/ANM2 작업 전에 시트/애니메이션 계약을 정의합니다.
- 인덱스/tasks.json, 별칭, 그 다음 정확한 심볼을 검색합니다. knowledge/INDEX.md와 해당 도메인에 대한 생성된 소스 연결 레코드만 읽습니다.
- REPENTOGON이 활성화된 경우 바닐라 및 REPENTOGON 레코드를 모두 검색합니다; 명시적 수정 레코드가 해당 대상에서 우선 적용됩니다.
- 콜백 시맨틱, 버전 정밀도, 충돌/문제, 타당성, 로컬 협동, 상태 수명, XML/리소스, 성능 및 호환성을 확인합니다.
- 의존성 레이블이 지정된 패턴을 선택합니다. 스캐폴드와 정적 참조를 구분합니다;
runtime_tested: false는 게임플레이 검증을 의미하지 않습니다. - 가장 작은 아키텍처 호환 변경을 구현합니다. 기존 모듈, ID, 콜백, 헬퍼 및 스타일을 재사용합니다.
프로젝트를 이해하기 전에 대체
main.lua를 생성하지 마십시오. python scripts/validate_kb.py --project <mod-folder> --ecosystem <vanilla|repentogon>및prompts/아래의 관련 감사를 실행합니다.- 의존성, 사용된 정확한 증거, 검증 한계 및 대상 게임 내 테스트를 보고합니다.
정밀한 검색이 필요할 때:
- 정확한 API/열거형/XML에 대해 인덱스/symbols.json을 검색합니다.
- 인수, 필터, 반환 값, REPENTOGON 수정 사항에 대해 인덱스/callbacks.json을 검색합니다.
- 자연어 용어에 대해 인덱스/aliases.json을 검색합니다.
- 증상 기반 라우팅에 대해 인덱스/errors.json을 검색합니다.
- 특이한 작업 전에 knowledge/feasibility.md를 사용합니다.
- 정확한 시맨틱을 위해 무시된
.cache/upstreams/<source>/체크아웃 아래 레코드의source_path를 읽고, 그 HEAD를 레지스트리 핀과 비교합니다. 드리프트가 발생한 경우git show <pin>:<path>로 핀된 파일을 읽습니다; 최신 체크아웃을 핀된 증거로 취급하지 마십시오. 핀된 파일이 없으면 큐레이트된 안전한 업데이트 워크플로를 실행하고 새 핀을 수락하기 전에 소스 드리프트를 검토합니다.
현재 네이티브 REPENTOGON 및 유지 관리되는 라이브러리 옵션과 비교하기 전에는 스테이지, 커스텀 체력, 미니맵, 설정, 업적 또는 완료 시스템을 다시 구현하지 마십시오. 프로젝트가 이미 사용 중이거나 사용자가 수락하지 않는 한 일반 Lua에 IsaacScript/TypeScript 또는 라이브러리를 혼합하지 마십시오.
양보 불가 확인
- 콜백 인수, 필터, 반환 유형, 취소/대체 동작 및 REPENTOGON이 바닐라 콜백을 수정하는지 확인합니다.
- 정규화된 레코드에서 클래스 멤버 철자와 버전 배지를 확인합니다.
- 엔티티 유형/변형/하위 유형 및 XML 속성을 현재 레코드 또는 추출된 로컬 리소스에서 확인합니다. 숫자 ID나 리소스 경로를 절대 추측하지 마십시오.
- 플레이어 스탯과 패밀리어 카운트에는 캐시 콜백을 사용합니다. 문서화된 경우 명시적 콜백 필터를 사용합니다. 측정되지 않고 좁게 필터링되지 않은 한 프레임/렌더 콜백에서 전체 방 스캔을 피합니다.
- 플레이어 소유권과 로컬 협동을 명시적으로 유지합니다. 플레이어 인덱스 0을 가정하지 마십시오.
- 저장 데이터는 JSON 안전하게 유지합니다; 실행이 시작된 후에만 로드하고 문서화된 수명 주기 지점에서 저장합니다. 오래되었거나 부분적인 저장을 디코딩할 때 기본값을 보존합니다.
- 설치된 게임 에셋을 복사하거나 수정하지 마십시오. 파생 경로 메모는 허용됩니다.
- 그래픽을 게임 에셋으로 취급: 실제 PNG 크롭, ANM2, Lua/XML 및 애니메이션 이벤트와 일치시킵니다.
플레이스홀더는 개발용이며 최종이 아닙니다. 관찰된 게임 내 시각적 테스트 없이
visual_runtime_tested: false를 기록합니다.
작업에 필요한 것만 읽기
- API/콜백 질문: 생성된 카탈로그 및 knowledge/callbacks/critical-callbacks.md.
- XML/리소스/애니메이션/방 작업:
knowledge/아래의 해당 가이드 및schemas/아래의 벤더 스키마. - 새 스프라이트, 코스튬, 리스킨 또는 애니메이션 작업:
그래픽 제작,
계약 템플릿, 및
시각적 QA.
scripts/gfx_audit.py <mod-folder>실행; 최종 에셋/준비 게이트에는--release사용. - 구현: 패턴/INDEX.md 및 일치하는 패턴 제품군.
- 디버깅: knowledge/debugging/decision-tree.md.
- 라이브러리: knowledge/libraries/index.md; 호출하기 전에 라이브러리의 현재 공개 문서/코드를 읽습니다.
신뢰할 수 있는 참조에 요청된 API가 포함되어 있지 않은 경우, 인덱스된 리비전에서 확인되지 않았거나 존재하지 않는다고 말하십시오. 대체를 조작하지 마십시오.