[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M69AVPDW8T7960QBW29F3ZEW":3,"skill-same:01M69AVPDW8T7960QBW29F3ZEW":300},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":29,"linkOnly":30,"markdownContent":31,"markdownBody":32,"frontMatter":33,"refName":34,"commitSha":35,"skillDirectory":36,"forksCount":37,"repositoryHtmlUrl":38,"repositoryHomepageUrl":39,"ownerHtmlUrl":40,"ownerBlogUrl":41,"ownerDescription":42,"updatedAt":43,"install":44,"resources":57},"01M69AVPDW8T7960QBW29F3ZEW","skillopt-sleep",null,"Use when the user wants Cursor to learn from recent local sessions, asks for an offline sleep or dream cycle, wants to consolidate recurring work into a Cursor skill, or requests SkillOpt-Sleep status, harvest, dry-run, run, scheduling, review, or adoption. Drives the validation-gated skillopt_sleep engine with Cursor transcripts and the optional Cursor Agent CLI backend.","microsoft\u002FSkillOpt","microsoft","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F6154722?v=4","01M698VYDXZ6JW5WH3CRV650R8","Microsoft","01M69AVF76KYARHPEXXWV3G0QZ",19001,"MIT","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FSkillOpt\u002Fblob\u002Fmain\u002Fplugins\u002Fcursor\u002Fskills\u002Fskillopt-sleep\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[24,25,26,27,28],"skillopt sleep","review","cli","sessions","status","2026-11-10 10:12:30",false,"---\nname: skillopt-sleep\ndescription: \"Use when the user wants Cursor to learn from recent local sessions, asks for an offline sleep or dream cycle, wants to consolidate recurring work into a Cursor skill, or requests SkillOpt-Sleep status, harvest, dry-run, run, scheduling, review, or adoption. Drives the validation-gated skillopt_sleep engine with Cursor transcripts and the optional Cursor Agent CLI backend.\"\n---\n\n# SkillOpt-Sleep for Cursor\n\nSkillOpt-Sleep reviews recent local Cursor sessions, mines recurring tasks,\nreplays those tasks, and proposes bounded improvements to a project Cursor\nskill. With the default gate enabled, a proposal is accepted only when it\nimproves the held-out score. A normal run stages the proposal for review;\nnothing live changes until explicit adoption. There is no model-weight training.\n\nThis plugin has no session-end hook and no MCP server. Run the cycle only when\nthe user asks, or install a schedule only when the user explicitly requests one.\n\n## Cursor target\n\nAlways use this project-relative target for Cursor-visible learning:\n\n```text\n.cursor\u002Fskills\u002Fskillopt-sleep-learned\u002FSKILL.md\n```\n\nPass it through `--target-skill-path` on `harvest`, `dry-run`, and `run`.\nWithout an explicit target, the shared engine uses a Claude-managed skill under\n`~\u002F.claude\u002Fskills`, which is not the intended Cursor project skill.\n\nThe shared engine can also evolve project `CLAUDE.md`. If that secondary memory\ntarget is unwanted, set `\"evolve_memory\": false` in\n`~\u002F.skillopt-sleep\u002Fconfig.json` before running.\n\n## Choose the runner\n\nUse one of these supported command paths consistently:\n\n1. Source checkout on macOS\u002FLinux:\n   `bash \"$SKILLOPT_SLEEP_REPO\u002Fplugins\u002Frun-sleep.sh\" \u003Caction> ...`\n2. Source checkout on Windows:\n   `powershell -File \"$env:SKILLOPT_SLEEP_REPO\\plugins\\run-sleep.ps1\" \u003Caction> ...`\n3. Installed engine on any platform:\n   `skillopt-sleep \u003Caction> ...`\n\nIf `SKILLOPT_SLEEP_REPO` is not set and `skillopt-sleep` is unavailable, stop\nand explain that the engine must be installed or a SkillOpt checkout must be\nselected. Do not substitute a hand-written edit for the engine workflow.\n\n## Core workflow\n\n1. **Harvest** local Cursor JSONL transcripts read-only.\n2. **Mine** recurring, checkable task records from session digests.\n3. **Replay** tasks under the current skill and memory through the selected\n   backend.\n4. **Reflect** on failures and propose bounded edits.\n5. **Gate** the candidate on held-out real tasks.\n6. **Stage** accepted proposals under\n   `\u003Cproject>\u002F.skillopt-sleep\u002Fstaging\u002F\u003Ctimestamp>\u002F`.\n7. **Adopt** only after review, backing up existing live targets first.\n\n## Commands\n\nUse the installed-command form below, or replace `skillopt-sleep` with the\nplatform-specific source runner described above.\n\n```bash\nTARGET_SKILL=.cursor\u002Fskills\u002Fskillopt-sleep-learned\u002FSKILL.md\n\n# Inspect current state and the latest staged proposal.\nskillopt-sleep status --project \"$(pwd)\"\n\n# Inspect mined tasks without provider spend.\nskillopt-sleep harvest --project \"$(pwd)\" --source cursor \\\n  --target-skill-path \"$TARGET_SKILL\" --max-sessions 5 --max-tasks 3\n\n# First smoke check: deterministic and no provider calls.\nskillopt-sleep dry-run --project \"$(pwd)\" --source cursor --backend mock \\\n  --target-skill-path \"$TARGET_SKILL\" --max-sessions 5 --max-tasks 3 --json\n\n# Model-driven optimization through the authenticated Cursor Agent CLI.\nskillopt-sleep run --project \"$(pwd)\" --source cursor --backend cursor \\\n  --target-skill-path \"$TARGET_SKILL\" \\\n  --max-sessions 5 --max-tasks 3 --progress\n\n# Inspect selections, then apply the reviewed managed proposal.\nskillopt-sleep status --project \"$(pwd)\"\nskillopt-sleep adopt --project \"$(pwd)\" --legacy\n```\n\nFor fan-out proposals, use repeatable `--skill NAME` or `--all-skills` after\nreview. Bare adopt deliberately refuses a night containing fan-out rows.\n\nActions are `status`, `harvest`, `dry-run`, `run`, `adopt`, `schedule`, and\n`unschedule`.\n\n- Default backend is `mock`, which is deterministic and makes no provider calls.\n- `--backend cursor` uses the user's authenticated Cursor Agent CLI budget for\n  model-driven mining, replay, judging, and reflection.\n- `--source cursor` reads\n  `~\u002F.cursor\u002Fprojects\u002F\u003Cworkspace>\u002Fagent-transcripts\u002F*\u002F*.jsonl`.\n- `--cursor-home PATH` overrides the Cursor home used for harvesting.\n- `--scope invoked` selects the current workspace; `--scope all` includes every\n  Cursor workspace.\n- `--cursor-path PATH` or `SKILLOPT_SLEEP_CURSOR_PATH` selects a non-default\n  `cursor-agent` executable.\n- `--model NAME` or `SKILLOPT_SLEEP_CURSOR_MODEL` overrides the Cursor model.\n- Check model identifiers with `cursor-agent --list-models`; when cost matters,\n  verify the billed variant in Cursor's usage reporting.\n- Keep live runs bounded with `--max-sessions`, `--max-tasks`, and `--progress`.\n- A held-out gain is evidence for that run, not a promise of general improvement.\n\nThe first harvest uses a 72-hour lookback. Use `--lookback-hours N` for a wider\ninitial window or `--lookback-hours 0` for all available history. A stateful\n`run`, including a no-task run, records a harvest checkpoint; later runs use the\ncheckpoint rather than the initial lookback. Inspect counts with `harvest` or\n`dry-run` before the first real run because those actions do not advance state.\n\nAvailable backends are:\n\n- `mock` - deterministic, with no provider calls (default);\n- `cursor` - the authenticated Cursor Agent CLI;\n- `claude` - the authenticated Claude CLI;\n- `codex` - the authenticated Codex CLI;\n- `copilot` - the authenticated GitHub Copilot CLI;\n- `handoff` - prompt\u002Fanswer files for an interactive agent session;\n- `azure_openai` - the configured Azure OpenAI endpoint.\n\nSkillOpt reads the target skill and inserts its text into replay prompts; it does\nnot invoke the file as a native Cursor skill. Ordinary Cursor backend calls run\nin a new empty temporary workspace in read-only Ask mode. File reads, file\nwrites, and MCP tools are denied. `--project` controls harvesting, target files,\nstate, and staging; it is not the Cursor Agent execution workspace.\n\nCursor tool-aware replay is temporarily disabled pending live Cursor\npermission-boundary validation. A task containing a `tool_called` check fails\nnonzero before Agent mode starts. The failed replay does not add a cache entry,\nstage, adopt, persist state, or advance the harvest checkpoint. Use another\nbackend for those tasks. Do not claim that repository- or tool-dependent\nbehavior was validated. The current engine does not implement a fresh-worktree\nreplay for Cursor.\n\nA real-backend `dry-run` still makes provider calls; it only suppresses staging.\nSession and task limits are workload bounds, not hard limits on calls, tokens,\ntime, or money. Start with small limits.\n\n## Reviewable data path\n\nCursor harvesting retains user\u002Fassistant text, tool names, and explicit turn\nerrors while excluding raw tool arguments, tool outputs, and non-message\nrecords. Known secret-shaped strings are redacted, but pattern-based redaction\ncannot guarantee that a transcript is safe to send to a provider.\n\nFor sensitive sessions, export tasks before any real-backend replay:\n\n```bash\nTARGET_SKILL=.cursor\u002Fskills\u002Fskillopt-sleep-learned\u002FSKILL.md\nskillopt-sleep harvest --project \"$(pwd)\" --source cursor \\\n  --target-skill-path \"$TARGET_SKILL\" \\\n  --max-sessions 5 --max-tasks 3 --output reviewed-tasks.json\n```\n\nInspect and redact the file, then set its top-level `\"reviewed\"` field to\n`true`. Only then run:\n\n```bash\nskillopt-sleep dry-run --project \"$(pwd)\" --backend cursor \\\n  --tasks-file reviewed-tasks.json --progress --json\n```\n\nReal backends reject task files that remain unreviewed. Never include raw\ntranscripts, credentials, secrets, or sensitive task content in messages,\ncommits, or generated summaries.\n\n`gate_no_regression` is a config-only safeguard in\n`~\u002F.skillopt-sleep\u002Fconfig.json`. It defaults to `false`; set it to `true` to\nreject a candidate when any validation task's configured gate score decreases.\n\n## Scheduling\n\nScheduling is opt-in. The scheduler persists project, backend, time, and the\noptional auto-adopt flag, but not `--source`, Cursor path\u002Fhome\u002Fmodel overrides,\nor `--target-skill-path`. Before scheduling a Cursor cycle, set at least these values in\n`~\u002F.skillopt-sleep\u002Fconfig.json`:\n\n```json\n{\n  \"transcript_source\": \"cursor\",\n  \"target_skill_path\": \".cursor\u002Fskills\u002Fskillopt-sleep-learned\u002FSKILL.md\",\n  \"backend\": \"cursor\"\n}\n```\n\nThen run:\n\n```bash\nskillopt-sleep schedule --project \"$(pwd)\" --backend cursor --hour 3 --minute 17\nskillopt-sleep unschedule --project \"$(pwd)\"\n```\n\nThe scheduler uses cron on Unix and Task Scheduler on Windows. Scheduled runs\nstage proposals by default. Use `--auto-adopt` only when the user has explicitly\nrequested unattended adoption.\n\n## Report results\n\nFor `dry-run` and `run`, report:\n\n- session and task counts;\n- held-out baseline and candidate scores;\n- gate action and accepted\u002Frejected edit counts;\n- exact proposed edits;\n- staging directory, when one was created.\n\nRead staged `report.md` before summarizing a run. Offer adoption only after the\nuser reviews an accepted proposal that is still staged. Never claim broad\nimprovement from one run.\n\n## Hard rules\n\n- Harvest is read-only. Never edit Cursor transcript files.\n- Never hand-edit the target skill or `CLAUDE.md` as a substitute for adoption.\n- Do not run a real backend on sensitive content without confirming its data\n  boundary or using the reviewed-task workflow.\n- Do not add a session-end hook or imply that installing this plugin schedules\n  anything.\n- Show validation evidence before recommending adoption.\n- Treat generated edits as proposals, not as source of truth.\n","# SkillOpt-Sleep for Cursor\n\nSkillOpt-Sleep reviews recent local Cursor sessions, mines recurring tasks,\nreplays those tasks, and proposes bounded improvements to a project Cursor\nskill. With the default gate enabled, a proposal is accepted only when it\nimproves the held-out score. A normal run stages the proposal for review;\nnothing live changes until explicit adoption. There is no model-weight training.\n\nThis plugin has no session-end hook and no MCP server. Run the cycle only when\nthe user asks, or install a schedule only when the user explicitly requests one.\n\n## Cursor target\n\nAlways use this project-relative target for Cursor-visible learning:\n\n```text\n.cursor\u002Fskills\u002Fskillopt-sleep-learned\u002FSKILL.md\n```\n\nPass it through `--target-skill-path` on `harvest`, `dry-run`, and `run`.\nWithout an explicit target, the shared engine uses a Claude-managed skill under\n`~\u002F.claude\u002Fskills`, which is not the intended Cursor project skill.\n\nThe shared engine can also evolve project `CLAUDE.md`. If that secondary memory\ntarget is unwanted, set `\"evolve_memory\": false` in\n`~\u002F.skillopt-sleep\u002Fconfig.json` before running.\n\n## Choose the runner\n\nUse one of these supported command paths consistently:\n\n1. Source checkout on macOS\u002FLinux:\n   `bash \"$SKILLOPT_SLEEP_REPO\u002Fplugins\u002Frun-sleep.sh\" \u003Caction> ...`\n2. Source checkout on Windows:\n   `powershell -File \"$env:SKILLOPT_SLEEP_REPO\\plugins\\run-sleep.ps1\" \u003Caction> ...`\n3. Installed engine on any platform:\n   `skillopt-sleep \u003Caction> ...`\n\nIf `SKILLOPT_SLEEP_REPO` is not set and `skillopt-sleep` is unavailable, stop\nand explain that the engine must be installed or a SkillOpt checkout must be\nselected. Do not substitute a hand-written edit for the engine workflow.\n\n## Core workflow\n\n1. **Harvest** local Cursor JSONL transcripts read-only.\n2. **Mine** recurring, checkable task records from session digests.\n3. **Replay** tasks under the current skill and memory through the selected\n   backend.\n4. **Reflect** on failures and propose bounded edits.\n5. **Gate** the candidate on held-out real tasks.\n6. **Stage** accepted proposals under\n   `\u003Cproject>\u002F.skillopt-sleep\u002Fstaging\u002F\u003Ctimestamp>\u002F`.\n7. **Adopt** only after review, backing up existing live targets first.\n\n## Commands\n\nUse the installed-command form below, or replace `skillopt-sleep` with the\nplatform-specific source runner described above.\n\n```bash\nTARGET_SKILL=.cursor\u002Fskills\u002Fskillopt-sleep-learned\u002FSKILL.md\n\n# Inspect current state and the latest staged proposal.\nskillopt-sleep status --project \"$(pwd)\"\n\n# Inspect mined tasks without provider spend.\nskillopt-sleep harvest --project \"$(pwd)\" --source cursor \\\n  --target-skill-path \"$TARGET_SKILL\" --max-sessions 5 --max-tasks 3\n\n# First smoke check: deterministic and no provider calls.\nskillopt-sleep dry-run --project \"$(pwd)\" --source cursor --backend mock \\\n  --target-skill-path \"$TARGET_SKILL\" --max-sessions 5 --max-tasks 3 --json\n\n# Model-driven optimization through the authenticated Cursor Agent CLI.\nskillopt-sleep run --project \"$(pwd)\" --source cursor --backend cursor \\\n  --target-skill-path \"$TARGET_SKILL\" \\\n  --max-sessions 5 --max-tasks 3 --progress\n\n# Inspect selections, then apply the reviewed managed proposal.\nskillopt-sleep status --project \"$(pwd)\"\nskillopt-sleep adopt --project \"$(pwd)\" --legacy\n```\n\nFor fan-out proposals, use repeatable `--skill NAME` or `--all-skills` after\nreview. Bare adopt deliberately refuses a night containing fan-out rows.\n\nActions are `status`, `harvest`, `dry-run`, `run`, `adopt`, `schedule`, and\n`unschedule`.\n\n- Default backend is `mock`, which is deterministic and makes no provider calls.\n- `--backend cursor` uses the user's authenticated Cursor Agent CLI budget for\n  model-driven mining, replay, judging, and reflection.\n- `--source cursor` reads\n  `~\u002F.cursor\u002Fprojects\u002F\u003Cworkspace>\u002Fagent-transcripts\u002F*\u002F*.jsonl`.\n- `--cursor-home PATH` overrides the Cursor home used for harvesting.\n- `--scope invoked` selects the current workspace; `--scope all` includes every\n  Cursor workspace.\n- `--cursor-path PATH` or `SKILLOPT_SLEEP_CURSOR_PATH` selects a non-default\n  `cursor-agent` executable.\n- `--model NAME` or `SKILLOPT_SLEEP_CURSOR_MODEL` overrides the Cursor model.\n- Check model identifiers with `cursor-agent --list-models`; when cost matters,\n  verify the billed variant in Cursor's usage reporting.\n- Keep live runs bounded with `--max-sessions`, `--max-tasks`, and `--progress`.\n- A held-out gain is evidence for that run, not a promise of general improvement.\n\nThe first harvest uses a 72-hour lookback. Use `--lookback-hours N` for a wider\ninitial window or `--lookback-hours 0` for all available history. A stateful\n`run`, including a no-task run, records a harvest checkpoint; later runs use the\ncheckpoint rather than the initial lookback. Inspect counts with `harvest` or\n`dry-run` before the first real run because those actions do not advance state.\n\nAvailable backends are:\n\n- `mock` - deterministic, with no provider calls (default);\n- `cursor` - the authenticated Cursor Agent CLI;\n- `claude` - the authenticated Claude CLI;\n- `codex` - the authenticated Codex CLI;\n- `copilot` - the authenticated GitHub Copilot CLI;\n- `handoff` - prompt\u002Fanswer files for an interactive agent session;\n- `azure_openai` - the configured Azure OpenAI endpoint.\n\nSkillOpt reads the target skill and inserts its text into replay prompts; it does\nnot invoke the file as a native Cursor skill. Ordinary Cursor backend calls run\nin a new empty temporary workspace in read-only Ask mode. File reads, file\nwrites, and MCP tools are denied. `--project` controls harvesting, target files,\nstate, and staging; it is not the Cursor Agent execution workspace.\n\nCursor tool-aware replay is temporarily disabled pending live Cursor\npermission-boundary validation. A task containing a `tool_called` check fails\nnonzero before Agent mode starts. The failed replay does not add a cache entry,\nstage, adopt, persist state, or advance the harvest checkpoint. Use another\nbackend for those tasks. Do not claim that repository- or tool-dependent\nbehavior was validated. The current engine does not implement a fresh-worktree\nreplay for Cursor.\n\nA real-backend `dry-run` still makes provider calls; it only suppresses staging.\nSession and task limits are workload bounds, not hard limits on calls, tokens,\ntime, or money. Start with small limits.\n\n## Reviewable data path\n\nCursor harvesting retains user\u002Fassistant text, tool names, and explicit turn\nerrors while excluding raw tool arguments, tool outputs, and non-message\nrecords. Known secret-shaped strings are redacted, but pattern-based redaction\ncannot guarantee that a transcript is safe to send to a provider.\n\nFor sensitive sessions, export tasks before any real-backend replay:\n\n```bash\nTARGET_SKILL=.cursor\u002Fskills\u002Fskillopt-sleep-learned\u002FSKILL.md\nskillopt-sleep harvest --project \"$(pwd)\" --source cursor \\\n  --target-skill-path \"$TARGET_SKILL\" \\\n  --max-sessions 5 --max-tasks 3 --output reviewed-tasks.json\n```\n\nInspect and redact the file, then set its top-level `\"reviewed\"` field to\n`true`. Only then run:\n\n```bash\nskillopt-sleep dry-run --project \"$(pwd)\" --backend cursor \\\n  --tasks-file reviewed-tasks.json --progress --json\n```\n\nReal backends reject task files that remain unreviewed. Never include raw\ntranscripts, credentials, secrets, or sensitive task content in messages,\ncommits, or generated summaries.\n\n`gate_no_regression` is a config-only safeguard in\n`~\u002F.skillopt-sleep\u002Fconfig.json`. It defaults to `false`; set it to `true` to\nreject a candidate when any validation task's configured gate score decreases.\n\n## Scheduling\n\nScheduling is opt-in. The scheduler persists project, backend, time, and the\noptional auto-adopt flag, but not `--source`, Cursor path\u002Fhome\u002Fmodel overrides,\nor `--target-skill-path`. Before scheduling a Cursor cycle, set at least these values in\n`~\u002F.skillopt-sleep\u002Fconfig.json`:\n\n```json\n{\n  \"transcript_source\": \"cursor\",\n  \"target_skill_path\": \".cursor\u002Fskills\u002Fskillopt-sleep-learned\u002FSKILL.md\",\n  \"backend\": \"cursor\"\n}\n```\n\nThen run:\n\n```bash\nskillopt-sleep schedule --project \"$(pwd)\" --backend cursor --hour 3 --minute 17\nskillopt-sleep unschedule --project \"$(pwd)\"\n```\n\nThe scheduler uses cron on Unix and Task Scheduler on Windows. Scheduled runs\nstage proposals by default. Use `--auto-adopt` only when the user has explicitly\nrequested unattended adoption.\n\n## Report results\n\nFor `dry-run` and `run`, report:\n\n- session and task counts;\n- held-out baseline and candidate scores;\n- gate action and accepted\u002Frejected edit counts;\n- exact proposed edits;\n- staging directory, when one was created.\n\nRead staged `report.md` before summarizing a run. Offer adoption only after the\nuser reviews an accepted proposal that is still staged. Never claim broad\nimprovement from one run.\n\n## Hard rules\n\n- Harvest is read-only. Never edit Cursor transcript files.\n- Never hand-edit the target skill or `CLAUDE.md` as a substitute for adoption.\n- Do not run a real backend on sensitive content without confirming its data\n  boundary or using the reviewed-task workflow.\n- Do not add a session-end hook or imply that installing this plugin schedules\n  anything.\n- Show validation evidence before recommending adoption.\n- Treat generated edits as proposals, not as source of truth.\n",{"name":5,"description":7},"main","bc0a392ef0a7f92840ec673d80204d34ced169d0","plugins\u002Fcursor\u002Fskills\u002Fskillopt-sleep",1816,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FSkillOpt","https:\u002F\u002Faka.ms\u002Fskillopt","https:\u002F\u002Fgithub.com\u002Fmicrosoft","https:\u002F\u002Fopensource.microsoft.com","Open source projects and samples from Microsoft","2026-11-11 04:10:50",{"source":8,"skillName":5,"commands":45,"prompt":55,"zipAvailable":56},[46,49,52],{"tool":47,"command":48},"npx","npx skills add microsoft\u002FSkillOpt --skill skillopt-sleep",{"tool":50,"command":51},"bunx","bunx skills add microsoft\u002FSkillOpt --skill skillopt-sleep",{"tool":53,"command":54},"pnpm","pnpm dlx skills add microsoft\u002FSkillOpt --skill skillopt-sleep","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FSkillOpt\u002Fblob\u002Fmain\u002Fplugins\u002Fcursor\u002Fskills\u002Fskillopt-sleep\u002FSKILL.md",true,[58,64,68,72,76,82,86,90,94,98,102,106,110,114,118,122,126,130,134,138,142,146,150,154,158,162,166,170,174,178,182,186,192,196,200,204,208,212,216,220,224,228,232,236,240,244,248,252,256,260,264,268,272,276,280,284,288,292,296],{"path":59,"resourceType":60,"resourceTypeDesc":61,"sizeBytes":62,"sourceHtmlUrl":63},"kit\u002Fapp\u002FApp.tsx","OTHER","其他",1336,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fawesome-rayfin\u002Fblob\u002Fmain\u002Ftemplates\u002Funiversal-app\u002F.agents\u002Fskills\u002Fanalytics\u002Fkit\u002Fapp\u002FApp.tsx",{"path":65,"resourceType":60,"resourceTypeDesc":61,"sizeBytes":66,"sourceHtmlUrl":67},"kit\u002Fapp\u002Fmain.tsx",657,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fawesome-rayfin\u002Fblob\u002Fmain\u002Ftemplates\u002Funiversal-app\u002F.agents\u002Fskills\u002Fanalytics\u002Fkit\u002Fapp\u002Fmain.tsx",{"path":69,"resourceType":60,"resourceTypeDesc":61,"sizeBytes":70,"sourceHtmlUrl":71},"kit\u002Fcomponents\u002Fdashboard\u002FAnimatedNumber.tsx",1886,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fawesome-rayfin\u002Fblob\u002Fmain\u002Ftemplates\u002Funiversal-app\u002F.agents\u002Fskills\u002Fanalytics\u002Fkit\u002Fcomponents\u002Fdashboard\u002FAnimatedNumber.tsx",{"path":73,"resourceType":60,"resourceTypeDesc":61,"sizeBytes":74,"sourceHtmlUrl":75},"kit\u002Fcomponents\u002Fdashboard\u002FAppShell.tsx",11587,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fawesome-rayfin\u002Fblob\u002Fmain\u002Ftemplates\u002Funiversal-app\u002F.agents\u002Fskills\u002Fanalytics\u002Fkit\u002Fcomponents\u002Fdashboard\u002FAppShell.tsx",{"path":77,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":80,"sourceHtmlUrl":81},"kit\u002Fcomponents\u002Fdashboard\u002Fcard-style.ts","SCRIPT","脚本",2122,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fawesome-rayfin\u002Fblob\u002Fmain\u002Ftemplates\u002Funiversal-app\u002F.agents\u002Fskills\u002Fanalytics\u002Fkit\u002Fcomponents\u002Fdashboard\u002Fcard-style.ts",{"path":83,"resourceType":60,"resourceTypeDesc":61,"sizeBytes":84,"sourceHtmlUrl":85},"kit\u002Fcomponents\u002Fdashboard\u002FCard.tsx",3388,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fawesome-rayfin\u002Fblob\u002Fmain\u002Ftemplates\u002Funiversal-app\u002F.agents\u002Fskills\u002Fanalytics\u002Fkit\u002Fcomponents\u002Fdashboard\u002FCard.tsx",{"path":87,"resourceType":60,"resourceTypeDesc":61,"sizeBytes":88,"sourceHtmlUrl":89},"kit\u002Fcomponents\u002Fdashboard\u002FChart.tsx",2978,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fawesome-rayfin\u002Fblob\u002Fmain\u002Ftemplates\u002Funiversal-app\u002F.agents\u002Fskills\u002Fanalytics\u002Fkit\u002Fcomponents\u002Fdashboard\u002FChart.tsx",{"path":91,"resourceType":60,"resourceTypeDesc":61,"sizeBytes":92,"sourceHtmlUrl":93},"kit\u002Fcomponents\u002Fdashboard\u002FChartCard.tsx",9069,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fawesome-rayfin\u002Fblob\u002Fmain\u002Ftemplates\u002Funiversal-app\u002F.agents\u002Fskills\u002Fanalytics\u002Fkit\u002Fcomponents\u002Fdashboard\u002FChartCard.tsx",{"path":95,"resourceType":60,"resourceTypeDesc":61,"sizeBytes":96,"sourceHtmlUrl":97},"kit\u002Fcomponents\u002Fdashboard\u002Fcontrols.tsx",4607,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fawesome-rayfin\u002Fblob\u002Fmain\u002Ftemplates\u002Funiversal-app\u002F.agents\u002Fskills\u002Fanalytics\u002Fkit\u002Fcomponents\u002Fdashboard\u002Fcontrols.tsx",{"path":99,"resourceType":60,"resourceTypeDesc":61,"sizeBytes":100,"sourceHtmlUrl":101},"kit\u002Fcomponents\u002Fdashboard\u002FDataTableCard.tsx",3739,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fawesome-rayfin\u002Fblob\u002Fmain\u002Ftemplates\u002Funiversal-app\u002F.agents\u002Fskills\u002Fanalytics\u002Fkit\u002Fcomponents\u002Fdashboard\u002FDataTableCard.tsx",{"path":103,"resourceType":60,"resourceTypeDesc":61,"sizeBytes":104,"sourceHtmlUrl":105},"kit\u002Fcomponents\u002Fdashboard\u002Ffilters\u002FDateRangeSlicer.tsx",6574,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fawesome-rayfin\u002Fblob\u002Fmain\u002Ftemplates\u002Funiversal-app\u002F.agents\u002Fskills\u002Fanalytics\u002Fkit\u002Fcomponents\u002Fdashboard\u002Ffilters\u002FDateRangeSlicer.tsx",{"path":107,"resourceType":60,"resourceTypeDesc":61,"sizeBytes":108,"sourceHtmlUrl":109},"kit\u002Fcomponents\u002Fdashboard\u002Ffilters\u002FDropdownSlicer.tsx",10333,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fawesome-rayfin\u002Fblob\u002Fmain\u002Ftemplates\u002Funiversal-app\u002F.agents\u002Fskills\u002Fanalytics\u002Fkit\u002Fcomponents\u002Fdashboard\u002Ffilters\u002FDropdownSlicer.tsx",{"path":111,"resourceType":60,"resourceTypeDesc":61,"sizeBytes":112,"sourceHtmlUrl":113},"kit\u002Fcomponents\u002Fdashboard\u002Ffilters\u002Ffilter-state.tsx",10558,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fawesome-rayfin\u002Fblob\u002Fmain\u002Ftemplates\u002Funiversal-app\u002F.agents\u002Fskills\u002Fanalytics\u002Fkit\u002Fcomponents\u002Fdashboard\u002Ffilters\u002Ffilter-state.tsx",{"path":115,"resourceType":60,"resourceTypeDesc":61,"sizeBytes":116,"sourceHtmlUrl":117},"kit\u002Fcomponents\u002Fdashboard\u002Ffilters\u002FFilterBar.tsx",5148,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fawesome-rayfin\u002Fblob\u002Fmain\u002Ftemplates\u002Funiversal-app\u002F.agents\u002Fskills\u002Fanalytics\u002Fkit\u002Fcomponents\u002Fdashboard\u002Ffilters\u002FFilterBar.tsx",{"path":119,"resourceType":60,"resourceTypeDesc":61,"sizeBytes":120,"sourceHtmlUrl":121},"kit\u002Fcomponents\u002Fdashboard\u002Ffilters\u002FListSlicer.tsx",9049,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fawesome-rayfin\u002Fblob\u002Fmain\u002Ftemplates\u002Funiversal-app\u002F.agents\u002Fskills\u002Fanalytics\u002Fkit\u002Fcomponents\u002Fdashboard\u002Ffilters\u002FListSlicer.tsx",{"path":123,"resourceType":60,"resourceTypeDesc":61,"sizeBytes":124,"sourceHtmlUrl":125},"kit\u002Fcomponents\u002Fdashboard\u002Ffilters\u002FPopover.tsx",4986,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fawesome-rayfin\u002Fblob\u002Fmain\u002Ftemplates\u002Funiversal-app\u002F.agents\u002Fskills\u002Fanalytics\u002Fkit\u002Fcomponents\u002Fdashboard\u002Ffilters\u002FPopover.tsx",{"path":127,"resourceType":60,"resourceTypeDesc":61,"sizeBytes":128,"sourceHtmlUrl":129},"kit\u002Fcomponents\u002Fdashboard\u002Ffilters\u002FRangeSlicer.tsx",5914,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fawesome-rayfin\u002Fblob\u002Fmain\u002Ftemplates\u002Funiversal-app\u002F.agents\u002Fskills\u002Fanalytics\u002Fkit\u002Fcomponents\u002Fdashboard\u002Ffilters\u002FRangeSlicer.tsx",{"path":131,"resourceType":60,"resourceTypeDesc":61,"sizeBytes":132,"sourceHtmlUrl":133},"kit\u002Fcomponents\u002Fdashboard\u002Ffilters\u002FSearchSlicer.tsx",4103,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fawesome-rayfin\u002Fblob\u002Fmain\u002Ftemplates\u002Funiversal-app\u002F.agents\u002Fskills\u002Fanalytics\u002Fkit\u002Fcomponents\u002Fdashboard\u002Ffilters\u002FSearchSlicer.tsx",{"path":135,"resourceType":60,"resourceTypeDesc":61,"sizeBytes":136,"sourceHtmlUrl":137},"kit\u002Fcomponents\u002Fdashboard\u002Fgrid.tsx",14580,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fawesome-rayfin\u002Fblob\u002Fmain\u002Ftemplates\u002Funiversal-app\u002F.agents\u002Fskills\u002Fanalytics\u002Fkit\u002Fcomponents\u002Fdashboard\u002Fgrid.tsx",{"path":139,"resourceType":60,"resourceTypeDesc":61,"sizeBytes":140,"sourceHtmlUrl":141},"kit\u002Fcomponents\u002Fdashboard\u002Ficons.tsx",3043,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fawesome-rayfin\u002Fblob\u002Fmain\u002Ftemplates\u002Funiversal-app\u002F.agents\u002Fskills\u002Fanalytics\u002Fkit\u002Fcomponents\u002Fdashboard\u002Ficons.tsx",{"path":143,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":144,"sourceHtmlUrl":145},"kit\u002Fcomponents\u002Fdashboard\u002Findex.ts",7783,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fawesome-rayfin\u002Fblob\u002Fmain\u002Ftemplates\u002Funiversal-app\u002F.agents\u002Fskills\u002Fanalytics\u002Fkit\u002Fcomponents\u002Fdashboard\u002Findex.ts",{"path":147,"resourceType":60,"resourceTypeDesc":61,"sizeBytes":148,"sourceHtmlUrl":149},"kit\u002Fcomponents\u002Fdashboard\u002FKpiCard.tsx",9347,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fawesome-rayfin\u002Fblob\u002Fmain\u002Ftemplates\u002Funiversal-app\u002F.agents\u002Fskills\u002Fanalytics\u002Fkit\u002Fcomponents\u002Fdashboard\u002FKpiCard.tsx",{"path":151,"resourceType":60,"resourceTypeDesc":61,"sizeBytes":152,"sourceHtmlUrl":153},"kit\u002Fcomponents\u002Fdashboard\u002Fselection.tsx",4948,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fawesome-rayfin\u002Fblob\u002Fmain\u002Ftemplates\u002Funiversal-app\u002F.agents\u002Fskills\u002Fanalytics\u002Fkit\u002Fcomponents\u002Fdashboard\u002Fselection.tsx",{"path":155,"resourceType":60,"resourceTypeDesc":61,"sizeBytes":156,"sourceHtmlUrl":157},"kit\u002Fcomponents\u002Fdashboard\u002FSketchToggle.tsx",1772,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fawesome-rayfin\u002Fblob\u002Fmain\u002Ftemplates\u002Funiversal-app\u002F.agents\u002Fskills\u002Fanalytics\u002Fkit\u002Fcomponents\u002Fdashboard\u002FSketchToggle.tsx",{"path":159,"resourceType":60,"resourceTypeDesc":61,"sizeBytes":160,"sourceHtmlUrl":161},"kit\u002Fcomponents\u002Fdashboard\u002FSparkline.tsx",5422,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fawesome-rayfin\u002Fblob\u002Fmain\u002Ftemplates\u002Funiversal-app\u002F.agents\u002Fskills\u002Fanalytics\u002Fkit\u002Fcomponents\u002Fdashboard\u002FSparkline.tsx",{"path":163,"resourceType":60,"resourceTypeDesc":61,"sizeBytes":164,"sourceHtmlUrl":165},"kit\u002Fcomponents\u002Fdashboard\u002Fstates.tsx",6507,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fawesome-rayfin\u002Fblob\u002Fmain\u002Ftemplates\u002Funiversal-app\u002F.agents\u002Fskills\u002Fanalytics\u002Fkit\u002Fcomponents\u002Fdashboard\u002Fstates.tsx",{"path":167,"resourceType":60,"resourceTypeDesc":61,"sizeBytes":168,"sourceHtmlUrl":169},"kit\u002Fcomponents\u002Fdashboard\u002FThemeToggle.tsx",1396,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fawesome-rayfin\u002Fblob\u002Fmain\u002Ftemplates\u002Funiversal-app\u002F.agents\u002Fskills\u002Fanalytics\u002Fkit\u002Fcomponents\u002Fdashboard\u002FThemeToggle.tsx",{"path":171,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":172,"sourceHtmlUrl":173},"kit\u002Fcomponents\u002Fdashboard\u002Fuse-chart.ts",4194,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fawesome-rayfin\u002Fblob\u002Fmain\u002Ftemplates\u002Funiversal-app\u002F.agents\u002Fskills\u002Fanalytics\u002Fkit\u002Fcomponents\u002Fdashboard\u002Fuse-chart.ts",{"path":175,"resourceType":60,"resourceTypeDesc":61,"sizeBytes":176,"sourceHtmlUrl":177},"kit\u002Fdemo\u002FDemoDashboard.tsx",15186,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fawesome-rayfin\u002Fblob\u002Fmain\u002Ftemplates\u002Funiversal-app\u002F.agents\u002Fskills\u002Fanalytics\u002Fkit\u002Fdemo\u002FDemoDashboard.tsx",{"path":179,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":180,"sourceHtmlUrl":181},"kit\u002Fdemo\u002Fglobal-development.ts",40158,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fawesome-rayfin\u002Fblob\u002Fmain\u002Ftemplates\u002Funiversal-app\u002F.agents\u002Fskills\u002Fanalytics\u002Fkit\u002Fdemo\u002Fglobal-development.ts",{"path":183,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":184,"sourceHtmlUrl":185},"kit\u002Ffabric.generated.ts",135,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fawesome-rayfin\u002Fblob\u002Fmain\u002Ftemplates\u002Funiversal-app\u002F.agents\u002Fskills\u002Fanalytics\u002Fkit\u002Ffabric.generated.ts",{"path":187,"resourceType":188,"resourceTypeDesc":189,"sizeBytes":190,"sourceHtmlUrl":191},"kit\u002Ffabric.yaml","REFERENCE","参考文档",47,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fawesome-rayfin\u002Fblob\u002Fmain\u002Ftemplates\u002Funiversal-app\u002F.agents\u002Fskills\u002Fanalytics\u002Fkit\u002Ffabric.yaml",{"path":193,"resourceType":60,"resourceTypeDesc":61,"sizeBytes":194,"sourceHtmlUrl":195},"kit\u002Fglobal.css",10357,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fawesome-rayfin\u002Fblob\u002Fmain\u002Ftemplates\u002Funiversal-app\u002F.agents\u002Fskills\u002Fanalytics\u002Fkit\u002Fglobal.css",{"path":197,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":198,"sourceHtmlUrl":199},"kit\u002Fhooks\u002Fsketch.context.ts",825,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fawesome-rayfin\u002Fblob\u002Fmain\u002Ftemplates\u002Funiversal-app\u002F.agents\u002Fskills\u002Fanalytics\u002Fkit\u002Fhooks\u002Fsketch.context.ts",{"path":201,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":202,"sourceHtmlUrl":203},"kit\u002Fhooks\u002Ftheme.context.ts",713,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fawesome-rayfin\u002Fblob\u002Fmain\u002Ftemplates\u002Funiversal-app\u002F.agents\u002Fskills\u002Fanalytics\u002Fkit\u002Fhooks\u002Ftheme.context.ts",{"path":205,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":206,"sourceHtmlUrl":207},"kit\u002Fhooks\u002Fuse-semantic-model-query.ts",4447,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fawesome-rayfin\u002Fblob\u002Fmain\u002Ftemplates\u002Funiversal-app\u002F.agents\u002Fskills\u002Fanalytics\u002Fkit\u002Fhooks\u002Fuse-semantic-model-query.ts",{"path":209,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":210,"sourceHtmlUrl":211},"kit\u002Fhooks\u002Fuse-sketch.ts",894,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fawesome-rayfin\u002Fblob\u002Fmain\u002Ftemplates\u002Funiversal-app\u002F.agents\u002Fskills\u002Fanalytics\u002Fkit\u002Fhooks\u002Fuse-sketch.ts",{"path":213,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":214,"sourceHtmlUrl":215},"kit\u002Fhooks\u002Fuse-slicer-options.ts",4422,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fawesome-rayfin\u002Fblob\u002Fmain\u002Ftemplates\u002Funiversal-app\u002F.agents\u002Fskills\u002Fanalytics\u002Fkit\u002Fhooks\u002Fuse-slicer-options.ts",{"path":217,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":218,"sourceHtmlUrl":219},"kit\u002Fhooks\u002Fuse-theme.ts",2378,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fawesome-rayfin\u002Fblob\u002Fmain\u002Ftemplates\u002Funiversal-app\u002F.agents\u002Fskills\u002Fanalytics\u002Fkit\u002Fhooks\u002Fuse-theme.ts",{"path":221,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":222,"sourceHtmlUrl":223},"kit\u002Flib\u002Fapply-filters.ts",4589,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fawesome-rayfin\u002Fblob\u002Fmain\u002Ftemplates\u002Funiversal-app\u002F.agents\u002Fskills\u002Fanalytics\u002Fkit\u002Flib\u002Fapply-filters.ts",{"path":225,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":226,"sourceHtmlUrl":227},"kit\u002Flib\u002FchartTokens.ts",2941,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fawesome-rayfin\u002Fblob\u002Fmain\u002Ftemplates\u002Funiversal-app\u002F.agents\u002Fskills\u002Fanalytics\u002Fkit\u002Flib\u002FchartTokens.ts",{"path":229,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":230,"sourceHtmlUrl":231},"kit\u002Flib\u002Fdax-filters.ts",6480,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fawesome-rayfin\u002Fblob\u002Fmain\u002Ftemplates\u002Funiversal-app\u002F.agents\u002Fskills\u002Fanalytics\u002Fkit\u002Flib\u002Fdax-filters.ts",{"path":233,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":234,"sourceHtmlUrl":235},"kit\u002Flib\u002Fderive-kpi.ts",3317,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fawesome-rayfin\u002Fblob\u002Fmain\u002Ftemplates\u002Funiversal-app\u002F.agents\u002Fskills\u002Fanalytics\u002Fkit\u002Flib\u002Fderive-kpi.ts",{"path":237,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":238,"sourceHtmlUrl":239},"kit\u002Flib\u002Ffabric-client.ts",1487,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fawesome-rayfin\u002Fblob\u002Fmain\u002Ftemplates\u002Funiversal-app\u002F.agents\u002Fskills\u002Fanalytics\u002Fkit\u002Flib\u002Ffabric-client.ts",{"path":241,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":242,"sourceHtmlUrl":243},"kit\u002Flib\u002Ffilter-field.ts",2815,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fawesome-rayfin\u002Fblob\u002Fmain\u002Ftemplates\u002Funiversal-app\u002F.agents\u002Fskills\u002Fanalytics\u002Fkit\u002Flib\u002Ffilter-field.ts",{"path":245,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":246,"sourceHtmlUrl":247},"kit\u002Flib\u002Fformat.ts",4633,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fawesome-rayfin\u002Fblob\u002Fmain\u002Ftemplates\u002Funiversal-app\u002F.agents\u002Fskills\u002Fanalytics\u002Fkit\u002Flib\u002Fformat.ts",{"path":249,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":250,"sourceHtmlUrl":251},"kit\u002Flib\u002Fgraphein-theme.ts",4374,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fawesome-rayfin\u002Fblob\u002Fmain\u002Ftemplates\u002Funiversal-app\u002F.agents\u002Fskills\u002Fanalytics\u002Fkit\u002Flib\u002Fgraphein-theme.ts",{"path":253,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":254,"sourceHtmlUrl":255},"kit\u002Flib\u002Fpivot-chart-data.ts",7289,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fawesome-rayfin\u002Fblob\u002Fmain\u002Ftemplates\u002Funiversal-app\u002F.agents\u002Fskills\u002Fanalytics\u002Fkit\u002Flib\u002Fpivot-chart-data.ts",{"path":257,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":258,"sourceHtmlUrl":259},"kit\u002Flib\u002Fquery-table.ts",3491,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fawesome-rayfin\u002Fblob\u002Fmain\u002Ftemplates\u002Funiversal-app\u002F.agents\u002Fskills\u002Fanalytics\u002Fkit\u002Flib\u002Fquery-table.ts",{"path":261,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":262,"sourceHtmlUrl":263},"kit\u002Flib\u002Frayfin-client.ts",1111,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fawesome-rayfin\u002Fblob\u002Fmain\u002Ftemplates\u002Funiversal-app\u002F.agents\u002Fskills\u002Fanalytics\u002Fkit\u002Flib\u002Frayfin-client.ts",{"path":265,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":266,"sourceHtmlUrl":267},"kit\u002Flib\u002Fselection-bridge.ts",11392,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fawesome-rayfin\u002Fblob\u002Fmain\u002Ftemplates\u002Funiversal-app\u002F.agents\u002Fskills\u002Fanalytics\u002Fkit\u002Flib\u002Fselection-bridge.ts",{"path":269,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":270,"sourceHtmlUrl":271},"kit\u002Flib\u002Fto-chart-data.ts",6502,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fawesome-rayfin\u002Fblob\u002Fmain\u002Ftemplates\u002Funiversal-app\u002F.agents\u002Fskills\u002Fanalytics\u002Fkit\u002Flib\u002Fto-chart-data.ts",{"path":273,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":274,"sourceHtmlUrl":275},"kit\u002Flib\u002Fto-table.ts",4216,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fawesome-rayfin\u002Fblob\u002Fmain\u002Ftemplates\u002Funiversal-app\u002F.agents\u002Fskills\u002Fanalytics\u002Fkit\u002Flib\u002Fto-table.ts",{"path":277,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":278,"sourceHtmlUrl":279},"kit\u002Flib\u002Ftop-n.ts",3173,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fawesome-rayfin\u002Fblob\u002Fmain\u002Ftemplates\u002Funiversal-app\u002F.agents\u002Fskills\u002Fanalytics\u002Fkit\u002Flib\u002Ftop-n.ts",{"path":281,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":282,"sourceHtmlUrl":283},"kit\u002Flib\u002Futils.ts",703,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fawesome-rayfin\u002Fblob\u002Fmain\u002Ftemplates\u002Funiversal-app\u002F.agents\u002Fskills\u002Fanalytics\u002Fkit\u002Flib\u002Futils.ts",{"path":285,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":286,"sourceHtmlUrl":287},"kit\u002Flib\u002Fvalidate.ts",1914,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fawesome-rayfin\u002Fblob\u002Fmain\u002Ftemplates\u002Funiversal-app\u002F.agents\u002Fskills\u002Fanalytics\u002Fkit\u002Flib\u002Fvalidate.ts",{"path":289,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":290,"sourceHtmlUrl":291},"kit\u002Fscripts\u002Fpreview-visual.mjs",17257,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fawesome-rayfin\u002Fblob\u002Fmain\u002Ftemplates\u002Funiversal-app\u002F.agents\u002Fskills\u002Fanalytics\u002Fkit\u002Fscripts\u002Fpreview-visual.mjs",{"path":293,"resourceType":188,"resourceTypeDesc":189,"sizeBytes":294,"sourceHtmlUrl":295},"MODULES.md",1943,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fawesome-rayfin\u002Fblob\u002Fmain\u002Ftemplates\u002Funiversal-app\u002F.agents\u002Fskills\u002Fanalytics\u002FMODULES.md",{"path":297,"resourceType":188,"resourceTypeDesc":189,"sizeBytes":298,"sourceHtmlUrl":299},"pack.json",2056,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fawesome-rayfin\u002Fblob\u002Fmain\u002Ftemplates\u002Funiversal-app\u002F.agents\u002Fskills\u002Fanalytics\u002Fpack.json",[301,308,319,326],{"skillNo":302,"name":5,"nameZh":6,"description":303,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":304,"categories":305,"keywords":306,"publishedAt":29},"01M69AVT3C6TRVF93BQ4T5MJFS","Reference-only OpenClaw adaptation of SkillOpt-Sleep. Use it to study or port the contributed DeepSeek wrapper, not as a ready-to-run installation.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FSkillOpt\u002Fblob\u002Fmain\u002Fplugins\u002Fopenclaw\u002FSKILL.md",[],[24,307],"openclaw",{"skillNo":309,"name":5,"nameZh":6,"description":310,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":311,"categories":312,"keywords":317,"publishedAt":29},"01M69AVR9TG4AP9WJE9QYEY79X","Use when the user wants the dsh agent to self-improve from past usage, asks about a nightly\u002Foffline 'sleep' or 'dream' cycle, skill\u002Fmemory consolidation, or says things like 'make my agent better the more I use it', 'review my past sessions', 'learn my preferences', 'consolidate what you learned', 'run the sleep cycle', or wants to schedule background self-optimization. Drives the skillopt_sleep engine through the skillopt_* tools: harvest past sessions -> mine recurring tasks -> replay via a selected backend -> consolidate validated skills behind a held-out gate.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FSkillOpt\u002Fblob\u002Fmain\u002Fplugins\u002Fdsh\u002Fskills\u002Fskillopt-sleep\u002FSKILL.md",[313,316],{"categoryNo":314,"categoryName":315,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[24,25,318,27],"memory",{"skillNo":320,"name":5,"nameZh":6,"description":321,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":322,"categories":323,"keywords":324,"publishedAt":29},"01M69AVMGBV7KJX0NF043FPDQ6","Use when the user wants Codex to self-improve from past usage, asks about a nightly\u002Foffline 'sleep' or 'dream' cycle, wants Codex to review past sessions, learn preferences, consolidate memory\u002Fskills, run dry-run\u002Frun\u002Fadopt\u002Fstatus for SkillOpt-Sleep, or schedule background self-optimization. Drives the skillopt_sleep engine: harvest past sessions -> mine recurring tasks -> replay through a selected backend -> consolidate validated memory + skills behind a held-out gate.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FSkillOpt\u002Fblob\u002Fmain\u002Fplugins\u002Fcodex\u002Fskills\u002Fskillopt-sleep\u002FSKILL.md",[],[24,25,325,318,27,28],"codex",{"skillNo":327,"name":5,"nameZh":6,"description":328,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":329,"categories":330,"keywords":332,"publishedAt":29},"01M69AVJA0DE796EKHGVMY10Q1","Use when the user wants their Claude agent to self-improve from past usage, asks about a nightly\u002Foffline 'sleep' or 'dream' cycle, memory\u002Fskill consolidation, or says things like 'make my agent better the more I use it', 'review my past sessions', 'learn my preferences', 'consolidate what you learned', 'run the sleep cycle', or wants to schedule background self-optimization. Drives the skillopt_sleep engine: harvest past sessions -> mine recurring tasks -> replay through a selected backend -> consolidate validated CLAUDE.md\u002FSKILL.md behind a held-out gate.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FSkillOpt\u002Fblob\u002Fmain\u002Fplugins\u002Fclaude-code\u002Fskills\u002Fskillopt-sleep\u002FSKILL.md",[331],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[24,25,318,27]]