Not in the top 1,000 by GitHub stars

CarlWangChina/zhigui-openclaw-ui-second-brain-skill

An advanced, UI-powered AI second brain Agent Skill for OpenClaw, Hermes Agent, WorkBuddy, TRAE, and QClaw. ZhiGui uses long-term memory to help you make better decisions, automatically plan tomorrow, resolve conflicting notes, and deliver each day's plan through your existing agent channels.

History

Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.

View weekly changes

skill/SKILL.md

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → c0c60c13184b

No earlier version was observed for comparison.

Compare on GitHub

View on GitHubAdd to my skills

Verified commit c0c60c13184b4b47f201355b1cde2c5a8e72d4dc

23GitHub stars
0stars in 7 days
1skill in this repository
0commits in 30 days

Heat

0.3
  • Star growth, last 7 daysNot available
  • Star growth, last 24 hoursNot available
  • Rank movement, last 7 daysNot available
  • Commits, last 30 daysNot available
  • Accounts asking about it through MCP, last 7 daysNot available
  • Hot votes this weekNot available

Heat never changes the order by stars, and sponsorship never touches it. How heat works

Stars over time

Oct 25, 2026Oct 25, 202623

30-day change not yet available: not enough history.

Individual skills in this repository

How it works

zhigui

When your agent uses it

Personal assistant workflow for durable memory, connected actions, decisions, planning and review. Use whenever the user discusses their life, commitments, goals, notes, choices, follow-ups, or schedule.

What it loads into context

Frontmatter

46 tokens

Always available to the agent

SKILL.md

8,708 tokens

When the skill is activated

Reference documents

0 tokens

Loaded on request

Token counts are estimates. Scripts run separately; they are not counted as reference context.

The playbook

  1. Files attached in chat
  2. Cold start and refresh
  3. Retrieval rules
  4. Proactive linking discipline
  5. Relationship graph and safe deletion
  6. Destructive deletion protocol
  7. Context-linked action decision tree
  8. Data tiers
  9. Activity reconciliation
  10. Planning and morning guidance
  11. Reminders vs errands vs goals
  12. Reasoning protocol
  13. Decision records
  14. Note classification and enrichment
  15. Entity lifecycle
  16. Lifecycle states
  17. Daily reflection
  18. Value system
  19. User profile
  20. Topic library management
  21. Planning tools
  22. Search and recall

Scripts executed separately

  • dashboard/public/dashboard.js
  • dashboard/server.js
  • electron/main.js
  • electron/preload.js
  • engine/actions.js
  • engine/attention-engine.js
  • engine/brain-index.js
  • engine/constants.js
  • engine/dashboard-state.js
  • engine/date-utils.js
  • engine/errors.js
  • engine/execution-context.js
  • engine/hierarchy.js
  • engine/logger.js
  • engine/reference-integrity.js
  • engine/reflection-engine.js
  • engine/relationship-graph.js
  • engine/scheduler.js
  • engine/server.js
  • engine/storage.js
  • engine/utils.js
  • lib/config.js
  • lib/init-data.js
  • lib/reset-data.js
  • package.json
  • scripts/cleanup-briefings.js
  • scripts/recalc-priorities.js
  • scripts/register-mcp.js
  • scripts/seed-demo-data-en.js
  • scripts/seed-demo-data.js
  • scripts/setup.js
  • start-electron.bat
  • start-electron.sh
  • start-server.bat
  • start-server.sh
  • test/architecture-evolution.js
  • test/assistant-continuity-regressions.js
  • test/briefing-dashboard-contract.js
  • test/chat-file-import-contract.js
  • test/core-scenarios.js
  • test/dashboard-date-contract.js
  • test/dashboard-read-model.js
  • test/decision-continuity.js
  • test/demo-seed.js
  • test/electron-presentation-contract.js
  • test/http-dashboard.js
  • test/integration-actions.js
  • test/mechanism-audit.js
  • test/run-all-tests.js
  • test/topic-deletion-integrity.js
  • test/write-cases.js

Files

  • SKILL.mdcore38,663 bytes
  • SKILL.mdcore38,663 bytes
  • SKILL.mdcore38,663 bytes
  • agents/openai.yamlasset237 bytes
  • config.jsonasset44 bytes
  • dashboard/public/dashboard.cssasset76,323 bytes
  • dashboard/public/dashboard.jsruns164,990 bytes
  • dashboard/public/index.htmlasset27,713 bytes
  • dashboard/server.jsruns31,390 bytes
  • electron/main.jsruns18,470 bytes
  • electron/preload.jsruns3,499 bytes
  • engine/actions.jsruns98,755 bytes
  • engine/attention-engine.jsruns18,617 bytes
  • engine/brain-index.jsruns47,887 bytes
  • engine/constants.jsruns7,317 bytes
  • engine/dashboard-state.jsruns2,502 bytes
  • engine/date-utils.jsruns5,512 bytes
  • engine/errors.jsruns2,817 bytes
  • engine/execution-context.jsruns3,323 bytes
  • engine/hierarchy.jsruns15,253 bytes
  • engine/logger.jsruns4,764 bytes
  • engine/reference-integrity.jsruns10,651 bytes
  • engine/reflection-engine.jsruns15,108 bytes
  • engine/relationship-graph.jsruns23,577 bytes
  • engine/scheduler.jsruns45,450 bytes
  • engine/server.jsruns171,597 bytes
  • engine/storage.jsruns53,503 bytes
  • engine/utils.jsruns3,601 bytes
  • lib/config.jsruns1,728 bytes
  • lib/init-data.jsruns5,153 bytes
  • lib/reset-data.jsruns3,726 bytes
  • mcp-config-template.jsonasset1,446 bytes
  • package.jsonruns584 bytes
  • scripts/cleanup-briefings.jsruns2,254 bytes
  • scripts/recalc-priorities.jsruns2,742 bytes
  • scripts/register-mcp.jsruns1,631 bytes
  • scripts/seed-demo-data-en.jsruns10,497 bytes
  • scripts/seed-demo-data.jsruns10,801 bytes
  • scripts/setup.jsruns8,522 bytes
  • start-electron.batruns1,149 bytes
  • start-electron.shruns697 bytes
  • start-server.batruns563 bytes
  • start-server.shruns217 bytes
  • test/architecture-evolution.jsruns4,932 bytes
  • test/assistant-continuity-regressions.jsruns7,606 bytes
  • test/briefing-dashboard-contract.jsruns1,961 bytes
  • test/chat-file-import-contract.jsruns1,569 bytes
  • test/core-scenarios.jsruns20,901 bytes
  • test/dashboard-date-contract.jsruns2,083 bytes
  • test/dashboard-read-model.jsruns1,759 bytes
  • test/decision-continuity.jsruns7,615 bytes
  • test/demo-seed.jsruns1,578 bytes
  • test/electron-presentation-contract.jsruns1,154 bytes
  • test/http-dashboard.jsruns5,863 bytes
  • test/integration-actions.jsruns13,090 bytes
  • test/mechanism-audit.jsruns16,395 bytes
  • test/run-all-tests.jsruns1,042 bytes
  • test/topic-deletion-integrity.jsruns5,969 bytes
  • test/write-cases.jsruns4,314 bytes

No excerpt is shown for this license. Read the source on GitHub.

View the complete source on GitHub

Skills included

  • zhigui

Repository facts

License
No license detected
Created
Jul 25, 2026
Last pushed
Jul 31, 2026
Forks
2
Open issues
0
Project activity
Slowing

Before you install

Network or broad shell

Automated signals, not a guarantee

Checked Nov 7, 2026

Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.

Show 2 notes
  • skill/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skill/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
Show all 123 signals by file

skill/dashboard/public/dashboard.js

  • Executable scriptline 1
    Executable file
  • Network accessline 576
    try {     const res = await fetch(url, { cache: 'no-store' });
  • Network accessline 577
    const res = await fetch(url, { cache: 'no-store' });
  • Network accessline 624
    try {     const res = await fetch(url, {
  • Network accessline 625
    const res = await fetch(url, {

skill/dashboard/public/index.html

  • Network accessline 8
    <meta http-equiv="Expires" content="0">   <!-- Security: CSP meta tag — applies in Electron file:// mode (HTTP header covers browser mode) -->   <meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self' 'unsa
  • Network accessline 9
    <!-- Security: CSP meta tag — applies in Electron file:// mode (HTTP header covers browser mode) -->   <meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inlin
  • Network accessline 10
    <meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; connect-src 'self' ws: wss:; img-src 'self' data:; font-src 'self' dat
  • Network accessline 11
    <title>ZhiGui · 知归</title>   <link rel="preconnect" href="https://fonts.googleapis.com">   <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
  • Network accessline 12
    <link rel="preconnect" href="https://fonts.googleapis.com">
  • Network accessline 13
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
  • Network accessline 14
    <link href="https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,300;9..144,400;9..144,500;9..144,600;9..144,700&family=Noto+Sans+SC:wght@300;400;500;700&display=swap" rel="stylesheet">

skill/dashboard/server.js

  • Executable scriptline 1
    Executable file
  • Network accessline 617
    if (ext === '.html') {       headers['Content-Security-Policy'] =         "default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; connect-src 'self' ws: wss:; img-src 'self' dat
  • Network accessline 618
    headers['Content-Security-Policy'] =         "default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; connect-src 'self' ws: wss:; img-src 'self' data:; font-src 'self' data: htt
  • Network accessline 619
    "default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; connect-src 'self' ws: wss:; img-src 'self' data:; font-src 'self' data: https://fonts.gstatic.com;";
  • Network accessline 633
    const origin = req.headers.origin || '';   if (origin === `http://localhost:${PORT}` || origin === `http://127.0.0.1:${PORT}` ||
  • Network accessline 634
    if (origin === `http://localhost:${PORT}` || origin === `http://127.0.0.1:${PORT}` ||
  • Network accessline 647
    // CSRF protection: block cross-origin WRITE requests (same-origin only).   // The browser sends an Origin header on cross-origin requests; the dashboard itself   // (served from http://localhost:7788) and the Electron shell (file:// / app:
  • Network accessline 648
    // The browser sends an Origin header on cross-origin requests; the dashboard itself   // (served from http://localhost:7788) and the Electron shell (file:// / app://) are allowed.   // Requests with NO Origin (curl, local Electron fetch, s
  • Network accessline 649
    // (served from http://localhost:7788) and the Electron shell (file:// / app://) are allowed.
  • Network accessline 652
    if (req.method === 'POST' || req.method === 'DELETE' || req.method === 'PUT') {     const writeOrigin = req.headers.origin;     const ALLOWED_WRITE_ORIGINS = [`http://localhost:${PORT}`, `http://127.0.0.1:${PORT}`];
  • Network accessline 653
    const writeOrigin = req.headers.origin;     const ALLOWED_WRITE_ORIGINS = [`http://localhost:${PORT}`, `http://127.0.0.1:${PORT}`];     const allowed = !writeOrigin ||
  • Network accessline 654
    const ALLOWED_WRITE_ORIGINS = [`http://localhost:${PORT}`, `http://127.0.0.1:${PORT}`];
  • Network accessline 667
    const url = new URL(req.url, `http://localhost:${PORT}`);
  • Network accessline 757
    console.log('  ╚══════════════════════════════════════╝');   console.log('');   console.log(`  Dashboard:  http://localhost:${PORT}`);
  • Network accessline 758
    console.log('');   console.log(`  Dashboard:  http://localhost:${PORT}`);   console.log(`  Health:     http://localhost:${PORT}/api/health`);
  • Network accessline 759
    console.log(`  Dashboard:  http://localhost:${PORT}`);
  • Network accessline 760
    console.log(`  Health:     http://localhost:${PORT}/api/health`);

skill/electron/main.js

  • Executable scriptline 1
    Executable file
  • Network accessline 512
    app.on('certificate-error', (event, webContents, url, error, certificate, callback) => {   if (url.startsWith('http://localhost') || url.startsWith('http://127.0.0.1')) {
  • Network accessline 513
    if (url.startsWith('http://localhost') || url.startsWith('http://127.0.0.1')) {

skill/electron/preload.js

  • Executable scriptline 1
    Executable file

skill/engine/actions.js

  • Executable scriptline 1
    Executable file

skill/engine/attention-engine.js

  • Executable scriptline 1
    Executable file

skill/engine/brain-index.js

  • Executable scriptline 1
    Executable file

skill/engine/constants.js

  • Executable scriptline 1
    Executable file

skill/engine/dashboard-state.js

  • Executable scriptline 1
    Executable file

skill/engine/date-utils.js

  • Executable scriptline 1
    Executable file

skill/engine/errors.js

  • Executable scriptline 1
    Executable file

skill/engine/execution-context.js

  • Executable scriptline 1
    Executable file

skill/engine/hierarchy.js

  • Executable scriptline 1
    Executable file

skill/engine/logger.js

  • Executable scriptline 1
    Executable file

skill/engine/reference-integrity.js

  • Executable scriptline 1
    Executable file

skill/engine/reflection-engine.js

  • Executable scriptline 1
    Executable file

skill/engine/relationship-graph.js

  • Executable scriptline 1
    Executable file

skill/engine/scheduler.js

  • Executable scriptline 1
    Executable file
  • Dangerous shell operationline 902
    const dayReminders = (state.reminders || []).filter(rm => {
  • Dangerous shell operationline 909
    mustItems.push(...dayReminders.map(rm => {
  • Dangerous shell operationline 972
    mustReminders: dayReminders.map(rm => ({ id: rm.id, title: rm.title, time: (rm.triggerAt || '').slice(11, 16), commitmentLevel: rm.commitmentLevel })),

skill/engine/server.js

  • Executable scriptline 1
    #!/usr/bin/env node

skill/engine/storage.js

  • Executable scriptline 1
    Executable file

skill/engine/utils.js

  • Executable scriptline 1
    Executable file

skill/lib/config.js

  • Executable scriptline 1
    Executable file

skill/lib/init-data.js

  • Executable scriptline 1
    Executable file

skill/lib/reset-data.js

  • Executable scriptline 1
    Executable file

skill/package.json

  • Executable scriptline 1
    Executable file

skill/scripts/cleanup-briefings.js

  • Executable scriptline 1
    Executable file

skill/scripts/recalc-priorities.js

  • Executable scriptline 1
    Executable file

skill/scripts/register-mcp.js

  • Executable scriptline 1
    #!/usr/bin/env node

skill/scripts/seed-demo-data-en.js

  • Executable scriptline 1
    #!/usr/bin/env node

skill/scripts/seed-demo-data.js

  • Executable scriptline 1
    #!/usr/bin/env node

skill/scripts/setup.js

  • Executable scriptline 1
    #!/usr/bin/env node

skill/start-electron.bat

  • Executable scriptline 1
    Executable file
  • Network accessline 18
    if errorlevel 1 (     echo [ERROR] npm not found in PATH. Cannot auto-install Electron.     echo Please install Node.js ^(https://nodejs.org^) or re-download the full ZhiGui.zip.
  • Network accessline 19
    echo [ERROR] npm not found in PATH. Cannot auto-install Electron.     echo Please install Node.js ^(https://nodejs.org^) or re-download the full ZhiGui.zip.     pause
  • Network accessline 20
    echo Please install Node.js ^(https://nodejs.org^) or re-download the full ZhiGui.zip.
  • Network accessline 24
    echo Running npm install ^(this may take a minute^)...   cd /d "%SCRIPT_DIR%"   call npm install --registry https://registry.npmmirror.com
  • Network accessline 25
    cd /d "%SCRIPT_DIR%"   call npm install --registry https://registry.npmmirror.com   if not exist "%ELECTRON_EXE%" (
  • Network accessline 26
    call npm install --registry https://registry.npmmirror.com

skill/start-electron.sh

  • Executable scriptline 1
    #!/usr/bin/env bash
  • Network accessline 7
    if [ ! -f "node_modules/electron/dist/electron" ]; then   echo "First run: installing Electron..."   export ELECTRON_MIRROR=https://npmmirror.com/mirrors/electron/
  • Network accessline 8
    echo "First run: installing Electron..."   export ELECTRON_MIRROR=https://npmmirror.com/mirrors/electron/   npm install --registry=https://registry.npmmirror.com
  • Network accessline 9
    export ELECTRON_MIRROR=https://npmmirror.com/mirrors/electron/
  • Network accessline 10
    npm install --registry=https://registry.npmmirror.com

skill/start-server.bat

  • Executable scriptline 1
    Executable file
  • Network accessline 16
    if errorlevel 1 (   echo [ERROR] Node.js not found in PATH.   echo Please install Node.js ^(https://nodejs.org^) and add it to PATH.
  • Network accessline 17
    echo [ERROR] Node.js not found in PATH.   echo Please install Node.js ^(https://nodejs.org^) and add it to PATH.   pause
  • Network accessline 18
    echo Please install Node.js ^(https://nodejs.org^) and add it to PATH.
  • Network accessline 23
    echo Starting ZhiGui dashboard at http://localhost:7788 ...

skill/start-server.sh

  • Executable scriptline 1
    #!/usr/bin/env bash
  • Network accessline 3
    cd "$(dirname "$0")" echo "Starting ZhiGui dashboard at http://localhost:7788 ..."
  • Network accessline 4
    echo "Starting ZhiGui dashboard at http://localhost:7788 ..."

skill/test/architecture-evolution.js

  • Executable scriptline 1
    Executable file

skill/test/assistant-continuity-regressions.js

  • Executable scriptline 1
    Executable file

skill/test/briefing-dashboard-contract.js

  • Executable scriptline 1
    Executable file

skill/test/chat-file-import-contract.js

  • Executable scriptline 1
    Executable file

skill/test/core-scenarios.js

  • Executable scriptline 1
    Executable file

skill/test/dashboard-date-contract.js

  • Executable scriptline 1
    Executable file

skill/test/dashboard-read-model.js

  • Executable scriptline 1
    Executable file

skill/test/decision-continuity.js

  • Executable scriptline 1
    Executable file

skill/test/demo-seed.js

  • Executable scriptline 1
    Executable file

skill/test/electron-presentation-contract.js

  • Executable scriptline 1
    Executable file

skill/test/http-dashboard.js

  • Executable scriptline 1
    Executable file
  • Network accessline 7
    const testDir = fs.mkdtempSync(path.join(os.tmpdir(), 'zhigui-http-')); const port = 17888 + Math.floor(Math.random() * 500); const base = `http://127.0.0.1:${port}`;
  • Network accessline 8
    const port = 17888 + Math.floor(Math.random() * 500); const base = `http://127.0.0.1:${port}`; const child = spawn(process.execPath, ['dashboard/server.js'], {
  • Network accessline 9
    const base = `http://127.0.0.1:${port}`;
  • Network accessline 31
    async function post(url, body) {   const response = await fetch(base + url, {
  • Network accessline 32
    const response = await fetch(base + url, {
  • Network accessline 43
    try {     await waitForServer();     const health = await (await fetch(base + '/api/health')).json();
  • Network accessline 44
    await waitForServer();     const health = await (await fetch(base + '/api/health')).json();     assert.equal(health.status, 'ok');
  • Network accessline 45
    const health = await (await fetch(base + '/api/health')).json();
  • Network accessline 48
    const page = await (await fetch(base + '/')).text();
  • Network accessline 71
    topic: 'HTTP retrieval boundary', category: 'Test',     });     const retiredImport = await fetch(base + '/api/note/import', {
  • Network accessline 72
    });     const retiredImport = await fetch(base + '/api/note/import', {       method: 'POST', headers: { 'Content-Type': 'application/json', Origin: base },
  • Network accessline 73
    const retiredImport = await fetch(base + '/api/note/import', {
  • Network accessline 83
    const state = await (await fetch(base + '/api/state')).json();
  • Network accessline 89
    assert.equal(state.notes.some(item => Object.hasOwn(item, 'contentPreview')), false,       'the dashboard state must not return truncated note text either');     const noteDetail = await (await fetch(base + '/api/note?noteId=' + encodeURICo
  • Network accessline 90
    'the dashboard state must not return truncated note text either');     const noteDetail = await (await fetch(base + '/api/note?noteId=' + encodeURIComponent(imported.note.id))).json();     assert.ok(noteDetail.note.content.includes('origina
  • Network accessline 91
    const noteDetail = await (await fetch(base + '/api/note?noteId=' + encodeURIComponent(imported.note.id))).json();
  • Network accessline 92
    assert.ok(noteDetail.note.content.includes('original wording'), 'one expanded note must load its own full body on demand');     const topics = await (await fetch(base + '/api/topics')).json();     const topic = topics.topics.find(item => it
  • Network accessline 93
    const topics = await (await fetch(base + '/api/topics')).json();
  • Network accessline 94
    const topic = topics.topics.find(item => item.label === 'HTTP retrieval boundary');     assert.ok(topic, 'the organized note must appear in the topic index');     const topicDetail = await (await fetch(base + '/api/topic?topicId=' + encodeU
  • Network accessline 95
    assert.ok(topic, 'the organized note must appear in the topic index');     const topicDetail = await (await fetch(base + '/api/topic?topicId=' + encodeURIComponent(topic.id))).json();     assert.equal(topicDetail.notes.some(item => item.id 
  • Network accessline 96
    const topicDetail = await (await fetch(base + '/api/topic?topicId=' + encodeURIComponent(topic.id))).json();
  • Network accessline 98
    'topic detail must expose linked note titles without transferring their bodies');     assert.equal(state.schedule.days['2026-07-22'].tasks.some(task => task.id === event.task.id), false);     const retiredWrite = await fetch(base + '/api/st
  • Network accessline 99
    assert.equal(state.schedule.days['2026-07-22'].tasks.some(task => task.id === event.task.id), false);     const retiredWrite = await fetch(base + '/api/state', {       method: 'POST', headers: { 'Content-Type': 'application/json', Origin: b
  • Network accessline 100
    const retiredWrite = await fetch(base + '/api/state', {

skill/test/integration-actions.js

  • Executable scriptline 1
    Executable file

skill/test/mechanism-audit.js

  • Executable scriptline 1
    Executable file

skill/test/run-all-tests.js

  • Executable scriptline 1
    Executable file

skill/test/topic-deletion-integrity.js

  • Executable scriptline 1
    Executable file

skill/test/write-cases.js

  • Executable scriptline 1
    Executable file

How the signals fit together

Facts from a static read of the files at the pinned commit. They describe what the code does, not why.

Some files could not be read; the facts below still hold.

Declared and executed: 3 facts
  • Contacts registry.npmmirror.com, which SKILL.md, the README and the plugin manifest do not mentionskill/start-electron.bat:26High confidence
  • Contacts npmmirror.com, which SKILL.md, the README and the plugin manifest do not mentionskill/start-electron.sh:9High confidence
  • Contacts registry.npmmirror.com, which SKILL.md, the README and the plugin manifest do not mentionskill/start-electron.sh:10High confidence
Signal confidence: 116 facts

and 66 more

Works with

Agent compatibility, from the files in this repository
AgentStatusEvidenceInstall to
Claude CodeCompatibleStandard SKILL.md skill/SKILL.md.claude/skills/<skill-name>/
CodexCompatibleStandard SKILL.md skill/SKILL.md.agents/skills/<skill-name>/
CursorCompatibleStandard SKILL.md skill/SKILL.md.cursor/skills/<skill-name>/
Gemini CLICompatibleStandard SKILL.md skill/SKILL.md.gemini/skills/<skill-name>/
GitHub CopilotCompatibleStandard SKILL.md skill/SKILL.md.github/skills/<skill-name>/
OpenCodeCompatibleStandard SKILL.md skill/SKILL.md.opencode/skills/<skill-name>/
  • Native The repository ships a manifest, folder or frontmatter field for this agent.
  • Compatible A standard SKILL.md that this agent can read.
  • Unknown No evidence either way.

Derived automatically from paths, manifests and frontmatter. Not tested on each agent.