Token导航 LogoToken导航TokenDH.com
研究检索需要联网github未标认证来源可访问许可证需确认审计异常

refinerefine 搜索

Agent Skill

refine 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

282

周安装

12

GitHub Stars

公开资料未说明

下载量

99
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:refine(refine 搜索)
来源仓库:https://github.com/olivoil/om-skills
仓库路径:skills/refine
安装命令:
npx skills add https://github.com/olivoil/om-skills --skill refine
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/olivoil/om-skills --skill refine

简介

refine 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。

  • 它可辅助信息细化与初步筛选,提升 Agent 在优化阶段的效率。
  • 通过 npx skills add 命令从指定仓库安装,需结合原始 README 核验具体用法。
  • 安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。
  • refine 属于研究检索类 Skill,可作为该场景下的辅助能力补充。

SKILL.md

Refine Daily Notes

Improve an Obsidian daily note by polishing prose, adding missing wikilinks to maintain a rich knowledge graph, extracting long sections into dedicated notes, and suggesting new vault entities.

Workflow

Phase 0: Setup

  1. Run echo $OBSIDIAN_VAULT_PATH to get the vault root. If empty, ask the user for the path.
  2. Determine the target date: use the argument if provided (e.g., /refine 2026-02-14), otherwise use today.
  3. Read the daily note at $VAULT/Daily Notes/{date}.md. Error if missing.

Phase 1: Transcribe Meeting Recordings

Detect meeting recordings and transcribe them into meeting notes. Two sub-phases run in order: SD card auto-detect (primary), then Google Drive URL scan (fallback).

Phase 1a: Recording Detection & Matching (Primary)

  1. Discover screen recordings: bash skills/transcribe-meeting/scripts/find-screenrecordings.sh "{date}" Save JSON output to /tmp/screenrecs-{date}.json. If no screen recordings found, use empty array [].
  2. Discover Rodecaster recordings: bash skills/transcribe-meeting/scripts/find-recordings.sh "{date}" Save JSON output to /tmp/rodecaster-{date}.json. If SD card not mounted or no recordings found, use empty array [].
  3. Match recordings by time overlap: bash skills/transcribe-meeting/scripts/match-recordings.sh /tmp/screenrecs-{date}.json /tmp/rodecaster-{date}.json This produces groups with mode, video, audio, and transcribe_from fields. If both arrays are empty, skip to Phase 1b silently.
  4. Check idempotency: For each group, search for existing meeting notes by both recording: and video_file: fields: grep -rl 'recording: "{folder}"' "$VAULT/Meetings/" grep -rl 'video_file: "{filename}"' "$VAULT/Meetings/" Skip any group that already has a meeting note (matched by either field).
  5. Match to time entries: For each new group, scan the daily note time entries for meeting-like entries. Use the recording start time and duration to correlate. Present to the user with mode info: Found 2 recording groups: omarchy-only: screen recording from 09:36 (30 min) — no Rodecaster match. Match to [[EWG]] - team standup - 0.5? omarchy+rodecaster: screen recording from 11:02 + Rodecaster 10 (51 min). Match to [[Khov]] - sync with Don - 1?
  6. Extract context from the matched time entry:

- Project: The wikilinked project name (e.g., [[Khov]]) - Description: The task/meeting description (e.g., "sync with Don") - Participants: Any names mentioned in the line or surrounding context

  1. Determine audio source for transcription:

- omarchy+rodecaster → audio = Rodecaster WAV (audio.path) - omarchy-only → extract audio from screen recording: bash skills/transcribe-meeting/scripts/extract-audio.sh "{video.path}" - rodecaster-only → audio = Rodecaster WAV (audio.path)

  1. Transcribe inline (do NOT use Task/sub-agents — they lack bash permissions). For each new group: a. Determine the engine: echo $OBSIDIAN_WHISPER_ENGINE (defaults to openai if unset). b. Run transcription directly: bash skills/transcribe-meeting/scripts/transcribe.sh "{wav_path}" "{engine}" c. Capture the JSON output (array of {start, end, text} segments). d. Generate a meeting note following the format in skills/transcribe-meeting/SKILL.md Phase 3: Phase 3.5: Extract Key Screenshots (only when video recording exists): Step 1 — Find user screenshots taken during the meeting: bash skills/transcribe-meeting/scripts/find-screenshots.sh "{date}" "{start_time}" "{duration_secs}" This returns a JSON array of screenshots from ~/Pictures/ (or $OMARCHY_SCREENSHOT_DIR / $XDG_PICTURES_DIR) taken during the meeting timeframe (±5 min buffer). Each entry has path, timestamp, and offset_secs. Step 2 — Copy and embed user screenshots: For each found screenshot: Step 3 — Supplement with ffmpeg-extracted frames: Embed all screenshots at corresponding transcript positions using ![[filename.png]].

- Title, Summary, Decisions, Action Items, Open Questions, Transcript - Use context from the matched time entry (project, description, participants) e. Present the summary to the user for approval before writing. f. Create the meeting note at $VAULT/Meetings/{date} {Title}.md with frontmatter: - recording: "{folder}" (if Rodecaster audio exists) - audio_url: "{wav_path}" - video_file: "{video_filename}" (if screen recording exists) - recording_mode: "{mode}" - Copy to $VAULT/Attachments/{meeting-name}-user-{HH-MM-SS}.png - Place in the meeting note at the transcript position closest to its offset_secs - Embed using ![[filename.png]] - If fewer than 3 user screenshots were found, scan the transcript for visual moments (screen sharing, demos, "as you can see", "look at this", code references, topic transitions) and extract additional frames to reach 3-8 total: ffmpeg -ss {secs} -i "{video}" -frames:v 1 -q:v 2 -y "$VAULT/Attachments/{name}-{MM-SS}.png" - If 3+ user screenshots were found, skip ffmpeg extraction entirely. - If no user screenshots at all, fall back entirely to existing ffmpeg extraction behavior (select 3-8 key timestamps).

  1. Post-process & upload: After transcription completes for each group: a. Compress WAV → MP3 and upload to Google Drive: bash skills/transcribe-meeting/scripts/compress.sh "{wav_path}" bash skills/transcribe-meeting/scripts/upload-gdrive.sh "/tmp/meeting-archive/{filename}.mp3" Capture the Google Drive URL. Update audio_url in the meeting note. b. Merge video + audio (omarchy+rodecaster only): bash skills/transcribe-meeting/scripts/merge-av.sh "{video.path}" "{audio.path}" c. Upload to YouTube (omarchy+rodecaster and omarchy-only): bash skills/transcribe-meeting/scripts/upload-youtube.sh "{video_file}" "{meeting_title}" "{summary}" "{date}"

- For omarchy+rodecaster: upload the merged MP4 - For omarchy-only: upload the original screen recording MP4 - Capture the YouTube URL. Update video_url in the meeting note.

  1. Update daily note: Append a wikilink to the matched time entry line: - [[Khov]] - sync with Don - 1 - [[2026-02-18 Khov Sync with Don]]
  2. Update project note: If the project has a note in $VAULT/Projects/, add a ## Meetings section (or append to existing) with a wikilink to the meeting note.

Present the transcription summary to the user for confirmation before writing the meeting note (consistent with refine's preview-before-applying pattern).

Phase 1b: Google Drive URL Detection (Fallback)

Scan the daily note for Google Drive audio links and transcribe them into meeting notes.

  1. Scan for audio URLs: Look for lines containing drive.google.com/file/d/ in the daily note text.
  2. Check for existing transcriptions: For each URL found, search $VAULT/Meetings/ for a note with matching audio_url in frontmatter: grep -rl "audio_url:.*{file-id}" "$VAULT/Meetings/" If a meeting note already exists for this URL, skip it (idempotent).
  3. Extract context: From the daily note line containing the URL, infer:

- Project: The wikilinked project name (e.g., [[Khov]]) - Description: The task/meeting description (e.g., "sync with Don") - Participants: Any names mentioned in the line or surrounding context

  1. Transcribe inline (do NOT use Task/sub-agents). For each new recording: a. Download the audio: bash skills/transcribe-meeting/scripts/download-gdrive.sh "{url}" b. Determine the engine: echo $OBSIDIAN_WHISPER_ENGINE (defaults to openai if unset). c. Run transcription directly: bash skills/transcribe-meeting/scripts/transcribe.sh "{local_audio_path}" "{engine}" d. Capture the JSON output (array of {start, end, text} segments). e. Generate a meeting note following the format in skills/transcribe-meeting/SKILL.md Phase 3. f. Present the summary to the user for approval before writing. g. Create the meeting note at $VAULT/Meetings/{date} {Title}.md.
  2. Update daily note: Replace the Google Drive link in the daily note line: - [[Project]] - description - hours - [recording](https://drive.google.com/...) To: - [[Project]] - description - hours - [[{date} {Title}]]
  3. Update project note: If the project has a note in $VAULT/Projects/, add a ## Meetings section (or append to existing) with a wikilink to the meeting note.

Present the transcription summary to the user for confirmation before writing the meeting note (consistent with refine's preview-before-applying pattern).

If no recordings are found from either source, skip this phase silently.

Phase 1c: Meeting Action Items → Project Todos

After all meeting notes are created (from Phase 1a and 1b), extract action items and add them to the relevant project pages.

  1. Collect action items: For each newly created meeting note, read its ## Action Items section.
  2. Filter for Olivier's items: Extract items assigned to Olivier (look for @Olivier, Olivier:, or unattributed items from 1:1 meetings where Olivier is a participant).
  3. Map to projects: Use the meeting frontmatter project: field to determine which project page each item belongs to.
  4. Check for duplicates: For each project, read the ## Todos section and fuzzy-match proposed items against existing todos. Skip items that are already present (even if worded slightly differently).
  5. Present proposed insertions grouped by project: From [[2026-02-20 EXSQ Sol 1-1 Sync]], adding to project pages: EXSQ.md ## Todos: - [] Set up Claude Code access for Sol (from [[2026-02-20 EXSQ Sol 1-1 Sync]]) EXSQ.md ## Todos: - [] Explore Figma + GitHub integration feasibility (from [[2026-02-20 EXSQ Sol 1-1 Sync]])
  6. If approved, append each todo under the ## Todos section of the corresponding project file in $VAULT/Projects/.
  7. Format: - [] task description (from [[Meeting Note]]) — no [[Project]] prefix needed since the todo is already in the project file.

If no new meeting notes were created or no action items found, skip this phase silently.

Phase 2: Discover Vault Entities

Build a catalog of all known entities so you can match them against the daily note text.

  1. Projects: List files recursively in $VAULT/Projects/ — extract project names from filenames
  2. People: List files in $VAULT/Persons/ — read each file to extract aliases from frontmatter
  3. Topics: List files in $VAULT/Topics/ — extract topic names from filenames
  4. Coding sessions: List files in $VAULT/Coding/ — for cross-reference awareness
  5. Meetings: List files in $VAULT/Meetings/ — for cross-reference awareness and to avoid duplicate transcription

This gives you the full entity catalog to match against the daily note.

Phase 2b: Slack Activity Scan

Always run this phase. If Slack MCP tools are unavailable, skip gracefully with no error.

  1. Load Slack tools: Use ToolSearch to search for slack tools. If no Slack MCP tools are available, skip this phase with no error — but always attempt it first.
  2. Search for user's messages on the target date using slack_search_public_and_private:

- Query: from:<@U07J89FDWPJ> on:{date}

  1. Group messages by channel and 30-minute time windows.
  2. Build a time coverage map from existing daily note time entries (start times, durations, projects).
  3. Identify gaps: time windows with 3+ Slack messages but no matching time entry.
  4. Detect huddles: For each DM or group DM channel found in step 2, read messages around the activity window using slack_read_channel with oldest/latest timestamps. Look for messages from Slackbot containing "A huddle started".

- Slack's search API does not index huddle system messages — they can only be found by reading the channel directly. - When a huddle is found, record: - Start time: the Slackbot message timestamp - Participants: inferred from the DM/group DM members (the channel context) - Estimated duration: gap between the huddle start and the next human message in the channel (rough estimate — Slack does not expose huddle duration via API) - Huddles should always have a corresponding time entry. Flag any huddle that doesn't match an existing entry.

  1. Infer channel→project mapping from channel names and existing time entries:

- Check cached mappings in $VAULT/.claude/intervals-cache/slack-mappings.md - If a new channel→project mapping is discovered, append it to the cache file

  1. Present findings: Slack activity not covered by time entries: #technomic-dev (2:30-3:15pm, 8 messages): discussed vector search PR issues → [[Technomic]]? #exsq-general (4:00-4:20pm, 4 messages): coordinated with team on AI Upskill → [[EXSQ]]? Add time entries for these? Huddles detected: DM with [[Sol Parrot|Sol]] (12:16pm, ~1h54m): matches [[EXSQ]] - 1:1 sync with Sol - 2DM with [[Adam Herrneckar|Adam]] (3:05pm, ~25m): no matching time entry — add one?
  2. If approved, suggest time entry lines but do NOT auto-insert into time entries — present them for the user to manually add (time entries are sacred structured data).

Phase 2c: Slack Activity Summary

Using the data already gathered in Phase 2b, write a ### Slack Activity section into the daily note summarizing the day's interactions.

  1. Group by channel/conversation: For each channel or DM where the user sent messages, build a brief summary:

- Channel name (linked to project if a mapping exists) - Time window (e.g., 2:30–3:15pm) - Message count - Topics discussed: Summarize the key topics, decisions, or questions from the messages (keep to 1–2 sentences per channel). Use context from slack_read_channel / slack_read_thread if threads were read in Phase 2b, otherwise summarize from search result snippets. - Huddle indicator: If a huddle was detected in this channel (from Phase 2b step 6), note it with duration.

  1. Format the section as a bullet list under ### Slack Activity: ### Slack Activity - **#technomic-dev** (2:30–3:15pm, 8 msgs) — Discussed vector search indexing issues; agreed to switch to HNSW. [[Technomic]] - **#exsq-general** (4:00–4:20pm, 4 msgs) — Coordinated AI Upskill session logistics with [[Sol Parrot|Sol]]. [[EXSQ]] - **DM with [[Adam Herrneckar|Adam]]** (3:05–3:30pm, 3 msgs + huddle ~25m) — Reviewed deployment pipeline changes.
  2. Wikilink any people and projects mentioned, using the entity catalog from Phase 2.
  3. Placement: Insert the section after the time entries block and before the first ### [[Project]] section (or at the end if no project sections exist). If a ### Slack Activity section already exists, replace it (idempotent).
  4. Include in Phase 6 preview: Show the proposed Slack Activity section as part of the change summary for user approval.

If no Slack messages were found in Phase 2b, or Slack MCP tools were unavailable, skip this phase silently.

Phase 3: Analyze & Improve Writing

Review each section of the daily note:

  • Skip time entries — the bullet list at the top (lines like - [[Project]] - task - duration) is structured data for the intervals skill. Never modify these.
  • Improve prose — fix grammar, improve clarity, tighten wording. Keep it concise.
  • Fix formatting — consistent heading levels, list styles, spacing.
  • Preserve todos — don't reorder, rewrite, or change checkbox state. Only improve prose around them.
  • Author's voice — improve clarity without rewriting the user's natural style. Don't make it sound like AI wrote it.

Phase 4: Add Missing Wikilinks

Scan all text (outside time entries) for mentions of known entities:

  • Projects: Add [[Project Name]] links where project names appear unlinked
  • People: Add [[Full Name]] or [[Full Name|Alias]] when a short name or alias is used
  • Topics: Add [[Topic]] links where topic names appear unlinked
  • Heading style: Use ### [[Project]] for project section headings consistently

Rules:

  • Don't double-link — skip text already inside [[...]]
  • Don't link inside time entry lines
  • Link known entities freely without asking the user

Phase 5: Extract Long Sections

Identify sections that are >~20 lines or contain substantial standalone content worth its own note.

For each extractable section:

  1. Determine destination: Projects/ subtree or Topics/ based on content
  2. Create the new note with proper format: # {Title} {Extracted content} ## Related - [[Daily Notes/{date}]]
  3. Replace the section in the daily note with a brief summary + [[wikilink]] to the new note

Present all proposed extractions to the user for approval before executing. Show what would be extracted, where it would go, and what the replacement summary would look like.

Phase 5b: Suggest New Entities

Identify mentions of people, projects, or topics that don't match any existing vault note.

Present these as candidates:

It looks like **Jane Smith** and **ProjectX** are mentioned but don't have vault pages yet.
Want me to create them?

For each confirmed new entity, create the note following vault conventions:

  • Person: $VAULT/Persons/{Name}.md --- aliases: - {short name} --- # {Full Name} **Role**: {if known} **Projects**: {if known} ## Notes
  • Project: $VAULT/Projects/{Name}.md (or appropriate subdirectory) # {Project Name} {Brief description if known} ## Related
  • Topic: $VAULT/Topics/{Name}.md # {Topic Name} {Brief definition if known} ## Related ## Notes

After creating new entities:

  • Add them to the respective MOC file (e.g., Persons MOC, Topics MOC) if one exists
  • Link them in the daily note (they now exist as vault pages)

Phase 5c: Suggest Todo Completions

Scan unchecked todos on project pages against today's content to suggest completions with high confidence.

  1. Collect unchecked todos from project pages: read the ## Todos section of each project file referenced in today's time entries (in $VAULT/Projects/). Collect all - [] lines.
  2. Build an evidence corpus from:

- Meeting note ## Decisions and ## Action Items sections (items marked complete) - Coding session summaries and files changed (from Coding/ notes for this date) - PR review verdicts (merged PRs mentioned in notes) - Daily note prose sections

  1. Match todos to evidence — for each unchecked todo, check for HIGH confidence matches only:

- Strong keyword overlap between todo text and evidence - Explicit completion signals ("merged PR #X", "completed", "done", "shipped", "deployed")

  1. Present suggestions with evidence: These todos appear done based on today's work: review PRs (Technomic.md) — Evidence: wrote detailed reviews for PRs #650, #636, #571, #469 fix vector search (Technomic.md) — Evidence: coding session [[2026-02-20--TechnomicIgnite--fix-vector-search]] shows fixes deployed Mark as complete? (✅ 2026-02-20)
  2. If approved, check off the todos on the project page: change - [] to - [x] and append ✅ {date}. The Tasks plugin completion format ensures they appear in the daily note's "Done today" dataview.

Rules:

  • Never suggest more than 5 completions at once
  • Skip anything below ~80% confidence — better to miss one than suggest a false positive
  • Never auto-complete without user approval
  • If no high-confidence matches found, skip this phase silently

Phase 5d: Freeze "Done today" on Previous Days

When refining a previous day's note (not today), convert the "Done today" dataview query into plain markdown so it becomes a permanent historical record.

  1. Check if the target date is before today. If refining today's note, skip this phase entirely.
  2. Find the ### Done today section and its dataview code block.
  3. Read completed todos from project pages: search all project files in $VAULT/Projects/ for tasks matching - [x]... ✅ {target-date} under ## Todos sections.
  4. Build plain markdown from the results: ### Done today - [x] [[Technomic]] - Investigate feature-22 login issue ✅ 2026-03-03 - [x] [[AI Upskill]] - Attend Panama Canal meeting ✅ 2026-03-03 Prefix each item with [[Project]] for context since the items originally live on project pages.
  5. Replace the dataview block with the plain markdown list.
  6. Clean up project pages: Remove the now-frozen - [x]... ✅ {target-date} items from the project files' ## Todos sections to keep them tidy.

If no completed tasks found for the target date, replace the dataview with an empty section (just the heading).

Phase 5e: Move Inline Todos to Project Pages

Scan the daily note for - [] lines written outside of dataview blocks and move them to the appropriate project page.

  1. Find inline todos: Scan the daily note for lines matching - [] [[Project]]... that are NOT inside a dataview code block.
  2. For each todo:

- Extract the project name from the [[Project]] wikilink - Find the corresponding project file in $VAULT/Projects/ - Check the ## Todos section for duplicates (fuzzy match)

  1. Present proposed moves: Moving inline todos to project pages: - [] [[Technomic]] fix login bug → Technomic.md ## Todos - [] [[KHov]] test Docker build → Khov.md ## Todos
  2. If approved:

- Append each todo (without the [[Project]] prefix) to the project file's ## Todos section - Remove the original line from the daily note

If no inline todos found, skip this phase silently.

Phase 6: Apply & Confirm

  1. Show a summary of all proposed changes before writing:

- Prose improvements (brief description) - Wikilinks added (list them) - Sections extracted (destination paths) - New entities created (paths)

  1. Get user approval before applying
  2. Apply changes: edit the daily note, create any extracted/new entity notes
  3. Report: what was changed, what was linked, what was extracted, what was created

Phase 7: Update Project Recent Activity

After all daily note changes are applied, update each referenced project's note with a summary of today's activity.

  1. Identify projects from today's time entries in the daily note.
  2. For each project with a note in $VAULT/Projects/:

- Read the existing ## Recent Activity section (or prepare to create it) - Build today's entry: - **{date}**: {hours}h — {brief summary} (meetings: [[links]], coding: [[links]]) - Prune entries older than 7 days from the section - Insert the ## Recent Activity section before ## Key Features or at the end of the note if no logical insertion point

  1. Check idempotency: If an entry for today's date already exists, update it rather than duplicating.
  2. Present all proposed project note updates for approval before applying.
  3. Apply changes if approved.

Phase 7b: Update Person Interaction History

Update person notes for anyone who appeared in today's meetings.

  1. Collect participants from all newly created meeting notes (from frontmatter participants: field).
  2. For each person with a note in $VAULT/Persons/:

- Read the existing ## Recent Interactions section (or prepare to create it) - Build entry: - **{date}**: [[Meeting Note]] — {topics discussed, action items for/from them} - Prune entries older than 30 days from the section - Insert the ## Recent Interactions section before ## Notes or at the end of the note

  1. Check idempotency: If an entry for today's date + same meeting already exists, skip it.
  2. Present all proposed person note updates for approval before applying.
  3. Apply changes if approved.

If no new meeting notes were created or no participants have vault pages, skip this phase silently.

Key Rules

  • Never modify time entries — the bullet list at the top is structured data
  • Todos live on project pages — open todos are under ## Todos in each project file. Daily notes show them via dataview queries (### Done today for completed, ### Open todos for unchecked). New todos from meetings go to project pages, not daily notes.
  • Link known entities freely — no need to ask for entities that already exist
  • Offer to create unknown entities — ask before creating new vault pages
  • Author's voice — improve clarity without rewriting style
  • Idempotent — running twice shouldn't cause issues (don't re-extract already-extracted sections, don't double-link, don't re-freeze already-frozen Done today sections)
  • Show before applying — always preview changes for user approval

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

36.88%
按下载量换算37

Claude

30.39%
按下载量换算30

Cursor

20.12%
按下载量换算20

Gemini CLI

9.44%
按下载量换算9

安全审计

Gen Agent Trust Hub

未通过

Socket

通过

Snyk

未通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在 warning/failed 结果,不能写成本站确认安全。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills