{ "schemaVersion": "0.1.0", "id": "navi", "displayName": "Navi Panda", "description": "一只躺着抱竹子的大熊猫桌宠,安静陪伴 coding,并用动作响应额度、工作和等待状态。", "kind": "creature", "tags": ["panda", "navi", "monochrome", "focus", "agent-status"], "vibes": ["calm", "quiet", "focused"], "author": { "name": "Bubu", "url": "https://github.com/MisterBrookT/pethatch" }, "license": { "code": "MIT", "assets": "MIT" }, "sourceAssets": { "baseImage": "source/lying-panda-source.png", "cutout": "source/lying-panda-cutout.png", "note": "Generated original giant panda concept art, then processed into a stable 8x9 PetHatch atlas." }, "spritesheet": { "path": "spritesheet.webp", "columns": 8, "rows": 9, "cellWidth": 192, "cellHeight": 208, "width": 1536, "height": 1872 }, "preview": { "contactSheet": "contact-sheet.png", "animation": "preview.gif" }, "animations": [ { "name": "idle", "row": 0, "frames": 6, "purpose": "Calm resting, breathing, and blinking loop." }, { "name": "running-right", "row": 1, "frames": 8, "purpose": "Rightward drag movement loop." }, { "name": "running-left", "row": 2, "frames": 8, "purpose": "Leftward drag movement loop." }, { "name": "waving", "row": 3, "frames": 4, "purpose": "Greeting or attention gesture." }, { "name": "jumping", "row": 4, "frames": 5, "purpose": "Hover or playful jump." }, { "name": "failed", "row": 5, "frames": 8, "purpose": "Blocked, failed, or cancelled reaction." }, { "name": "waiting", "row": 6, "frames": 6, "purpose": "Waiting for approval, help, quota reset, or user input." }, { "name": "running", "row": 7, "frames": 6, "purpose": "Active task work or processing." }, { "name": "review", "row": 8, "frames": 6, "purpose": "Ready or completed output review." } ], "events": { "agent.idle": { "animation": "idle", "tone": "neutral" }, "agent.running": { "animation": "running", "tone": "working" }, "agent.waiting": { "animation": "waiting", "tone": "attention" }, "agent.review": { "animation": "review", "tone": "done" }, "agent.failed": { "animation": "failed", "tone": "critical" }, "quota.healthy": { "animation": "idle", "tone": "neutral" }, "quota.active": { "animation": "running", "tone": "working" }, "quota.pressure": { "animation": "waving", "tone": "warning", "threshold": ">=70% used or <=30% remaining" }, "quota.limit": { "animation": "waiting", "tone": "critical", "threshold": ">=85% used or <=15% remaining" }, "system.keep_awake_on": { "animation": "idle", "tone": "system" } }, "behavior": { "summary": "Navi Panda 默认躺着安静陪伴,只用动作响应额度、工作、等待和完成状态。休息强制屏由 Kaji 负责。", "rules": [ { "id": "quota-pressure", "label": "quota pressure", "event": "quota.pressure", "trigger": { "metric": "quotaRemainingFraction", "operator": "<=", "value": 0.3 }, "animation": "waving", "tone": "warning", "mode": "medium", "message": "Navi Panda 懒懒抬头:额度开始紧了,先收口当前任务。" }, { "id": "quota-limit", "label": "quota limit", "event": "quota.limit", "trigger": { "metric": "quotaRemainingFraction", "operator": "<=", "value": 0.15 }, "animation": "waiting", "tone": "critical", "mode": "hard", "message": "Navi Panda 趴平了:额度只剩一点,别再开长任务。" } ] }, "compatibility": { "codexPets": true, "openPets": true, "petdexLike": true, "runtimeNotes": "Runtimes that only support the classic 9-row atlas can ignore events and use animations directly." } }