opencode-agent-skills-md 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (129) hide show
  1. package/dist/cli.mjs +770 -0
  2. package/dist/plugin.mjs +1138 -0
  3. package/dist/src/cli/config.d.ts +144 -0
  4. package/dist/src/cli/install.d.ts +33 -0
  5. package/dist/src/cli/main.d.ts +11 -0
  6. package/dist/src/cli/real-fs.d.ts +6 -0
  7. package/dist/src/cli/status.d.ts +34 -0
  8. package/dist/src/cli/uninstall.d.ts +22 -0
  9. package/dist/src/host.d.ts +51 -0
  10. package/dist/src/index.d.ts +17 -0
  11. package/dist/src/plugin.d.ts +35 -0
  12. package/dist/src/sdk.d.ts +51 -0
  13. package/dist/src/tools.d.ts +86 -0
  14. package/package.json +48 -18
  15. package/{packages/opencode-agent-skills-md/src → src}/cli/main.ts +20 -4
  16. package/.beads/.local_version +0 -1
  17. package/.beads/README.md +0 -81
  18. package/.beads/config.yaml +0 -61
  19. package/.beads/deletions.jsonl +0 -1
  20. package/.beads/issues.jsonl +0 -64
  21. package/.beads/metadata.json +0 -4
  22. package/.gitattributes +0 -3
  23. package/.github/CODEOWNERS +0 -1
  24. package/.github/copilot-instructions.md +0 -78
  25. package/.github/dependabot.yml +0 -13
  26. package/.github/workflows/release.yml +0 -51
  27. package/.opencode/command/test-compaction.md +0 -9
  28. package/.opencode/command/test-find-skills.md +0 -7
  29. package/.opencode/command/test-read-skill-file.md +0 -14
  30. package/.opencode/command/test-run-skill-script.md +0 -13
  31. package/.opencode/command/test-skills.md +0 -14
  32. package/.opencode/command/test-use-skill.md +0 -10
  33. package/.opencode/skills/git-helper/SKILL.md +0 -65
  34. package/.opencode/skills/test-skill/SKILL.md +0 -43
  35. package/.opencode/skills/test-skill/example-config.json +0 -16
  36. package/.opencode/skills/test-skill/helper-docs.md +0 -29
  37. package/.opencode/skills/test-skill/scripts/echo-args +0 -14
  38. package/.opencode/skills/test-skill/scripts/greet +0 -6
  39. package/AGENTS.md +0 -43
  40. package/CHANGELOG.md +0 -178
  41. package/Justfile +0 -39
  42. package/README.md +0 -189
  43. package/openspec/changes/archive/2026-06-14-skills-core-decouple/specs/core-decoupling/spec.md +0 -74
  44. package/openspec/changes/archive/2026-06-14-skills-core-decouple/tasks.md +0 -64
  45. package/openspec/changes/archive/2026-06-14-skills-core-decouple/verify-report.md +0 -75
  46. package/openspec/changes/archive/2026-06-17-fix-skill-loading-regression/apply-progress.md +0 -136
  47. package/openspec/changes/archive/2026-06-17-fix-skill-loading-regression/archive-report.md +0 -77
  48. package/openspec/changes/archive/2026-06-17-fix-skill-loading-regression/design.md +0 -89
  49. package/openspec/changes/archive/2026-06-17-fix-skill-loading-regression/proposal.md +0 -65
  50. package/openspec/changes/archive/2026-06-17-fix-skill-loading-regression/specs/core-decoupling/spec.md +0 -77
  51. package/openspec/changes/archive/2026-06-17-fix-skill-loading-regression/tasks.md +0 -65
  52. package/openspec/changes/archive/2026-06-17-fix-skill-loading-regression/verify-report.md +0 -165
  53. package/openspec/specs/core-decoupling/spec.md +0 -110
  54. package/packages/core/package.json +0 -30
  55. package/packages/core/src/content.d.ts +0 -16
  56. package/packages/core/src/content.ts +0 -30
  57. package/packages/core/src/debug.ts +0 -16
  58. package/packages/core/src/discovery.d.ts +0 -86
  59. package/packages/core/src/discovery.ts +0 -257
  60. package/packages/core/src/index.d.ts +0 -20
  61. package/packages/core/src/index.ts +0 -55
  62. package/packages/core/src/match.d.ts +0 -19
  63. package/packages/core/src/match.ts +0 -75
  64. package/packages/core/src/parse.d.ts +0 -26
  65. package/packages/core/src/parse.ts +0 -141
  66. package/packages/core/src/scripts.d.ts +0 -17
  67. package/packages/core/src/scripts.ts +0 -79
  68. package/packages/core/src/search.d.ts +0 -83
  69. package/packages/core/src/search.ts +0 -188
  70. package/packages/core/src/types.d.ts +0 -82
  71. package/packages/core/src/types.ts +0 -131
  72. package/packages/core/src/walk.ts +0 -109
  73. package/packages/core/tests/agnostic.test.ts +0 -346
  74. package/packages/core/tests/content.test.ts +0 -65
  75. package/packages/core/tests/discovery.test.ts +0 -370
  76. package/packages/core/tests/package-boundary.test.ts +0 -310
  77. package/packages/core/tests/parse-trigger.test.ts +0 -282
  78. package/packages/core/tests/search.test.ts +0 -374
  79. package/packages/core/tests/subpath.test.ts +0 -87
  80. package/packages/core/tsconfig.json +0 -10
  81. package/packages/opencode-agent-skills-md/package.json +0 -42
  82. package/packages/opencode-agent-skills-md/rolldown.config.js +0 -48
  83. package/packages/opencode-agent-skills-md/tests/cli-commands.test.ts +0 -1423
  84. package/packages/opencode-agent-skills-md/tests/e2e/startup-smoke.test.ts +0 -66
  85. package/packages/opencode-agent-skills-md/tests/fixtures/skills/home/.claude/skills/claude-user-only-skill/SKILL.md +0 -8
  86. package/packages/opencode-agent-skills-md/tests/fixtures/skills/home/.config/opencode/skills/shared-skill/SKILL.md +0 -8
  87. package/packages/opencode-agent-skills-md/tests/fixtures/skills/home/.config/opencode/skills/user-only-skill/SKILL.md +0 -8
  88. package/packages/opencode-agent-skills-md/tests/fixtures/skills/project/.claude/skills/claude-project-only-skill/SKILL.md +0 -8
  89. package/packages/opencode-agent-skills-md/tests/fixtures/skills/project/.opencode/skills/go-tester/SKILL.md +0 -12
  90. package/packages/opencode-agent-skills-md/tests/fixtures/skills/project/.opencode/skills/nested/team/nested-skill/SKILL.md +0 -8
  91. package/packages/opencode-agent-skills-md/tests/fixtures/skills/project/.opencode/skills/rust-tester/SKILL.md +0 -11
  92. package/packages/opencode-agent-skills-md/tests/fixtures/skills/project/.opencode/skills/scripted-skill/SKILL.md +0 -8
  93. package/packages/opencode-agent-skills-md/tests/fixtures/skills/project/.opencode/skills/scripted-skill/bin/echo.sh +0 -2
  94. package/packages/opencode-agent-skills-md/tests/fixtures/skills/project/.opencode/skills/scripted-skill/docs/reference.md +0 -1
  95. package/packages/opencode-agent-skills-md/tests/fixtures/skills/project/.opencode/skills/shared-skill/SKILL.md +0 -8
  96. package/packages/opencode-agent-skills-md/tests/fixtures/skills/project/.opencode/skills/using-superpowers/SKILL.md +0 -8
  97. package/packages/opencode-agent-skills-md/tests/integration/helpers/mock-opencode.ts +0 -114
  98. package/packages/opencode-agent-skills-md/tests/integration/plugin.test.ts +0 -316
  99. package/packages/opencode-agent-skills-md/tests/integration/skill-discovery.test.ts +0 -315
  100. package/packages/opencode-agent-skills-md/tests/opencode/host.test.ts +0 -179
  101. package/packages/opencode-agent-skills-md/tests/opencode/plugin.test.ts +0 -551
  102. package/packages/opencode-agent-skills-md/tests/opencode/subpath.test.ts +0 -66
  103. package/packages/opencode-agent-skills-md/tests/opencode/tools.test.ts +0 -213
  104. package/packages/opencode-agent-skills-md/tests/package-boundary.test.ts +0 -346
  105. package/packages/opencode-agent-skills-md/tests/tools-security.test.ts +0 -72
  106. package/packages/opencode-agent-skills-md/tsconfig.build.json +0 -11
  107. package/packages/opencode-agent-skills-md/tsconfig.json +0 -10
  108. package/plans/001-ci-gate.md +0 -177
  109. package/plans/002-is-path-safe.md +0 -243
  110. package/plans/003-escape-prompts.md +0 -310
  111. package/plans/004-test-security-paths.md +0 -228
  112. package/plans/005-stop-swallowing-errors.md +0 -246
  113. package/plans/006-preserve-jsonc-commas.md +0 -144
  114. package/plans/007-write-before-purge.md +0 -144
  115. package/plans/008-reuse-walkdir-for-list-skill-files.md +0 -164
  116. package/plans/README.md +0 -43
  117. package/pnpm-workspace.yaml +0 -6
  118. package/tests/workspace.test.ts +0 -367
  119. package/tsconfig.json +0 -15
  120. /package/{packages/opencode-agent-skills-md/src → src}/cli/config.ts +0 -0
  121. /package/{packages/opencode-agent-skills-md/src → src}/cli/install.ts +0 -0
  122. /package/{packages/opencode-agent-skills-md/src → src}/cli/real-fs.ts +0 -0
  123. /package/{packages/opencode-agent-skills-md/src → src}/cli/status.ts +0 -0
  124. /package/{packages/opencode-agent-skills-md/src → src}/cli/uninstall.ts +0 -0
  125. /package/{packages/opencode-agent-skills-md/src → src}/host.ts +0 -0
  126. /package/{packages/opencode-agent-skills-md/src → src}/index.ts +0 -0
  127. /package/{packages/opencode-agent-skills-md/src → src}/plugin.ts +0 -0
  128. /package/{packages/opencode-agent-skills-md/src → src}/sdk.ts +0 -0
  129. /package/{packages/opencode-agent-skills-md/src → src}/tools.ts +0 -0
package/.beads/README.md DELETED
@@ -1,81 +0,0 @@
1
- # Beads - AI-Native Issue Tracking
2
-
3
- Welcome to Beads! This repository uses **Beads** for issue tracking - a modern, AI-native tool designed to live directly in your codebase alongside your code.
4
-
5
- ## What is Beads?
6
-
7
- Beads is issue tracking that lives in your repo, making it perfect for AI coding agents and developers who want their issues close to their code. No web UI required - everything works through the CLI and integrates seamlessly with git.
8
-
9
- **Learn more:** [github.com/steveyegge/beads](https://github.com/steveyegge/beads)
10
-
11
- ## Quick Start
12
-
13
- ### Essential Commands
14
-
15
- ```bash
16
- # Create new issues
17
- bd create "Add user authentication"
18
-
19
- # View all issues
20
- bd list
21
-
22
- # View issue details
23
- bd show <issue-id>
24
-
25
- # Update issue status
26
- bd update <issue-id> --status in_progress
27
- bd update <issue-id> --status done
28
-
29
- # Sync with git remote
30
- bd sync
31
- ```
32
-
33
- ### Working with Issues
34
-
35
- Issues in Beads are:
36
- - **Git-native**: Stored in `.beads/issues.jsonl` and synced like code
37
- - **AI-friendly**: CLI-first design works perfectly with AI coding agents
38
- - **Branch-aware**: Issues can follow your branch workflow
39
- - **Always in sync**: Auto-syncs with your commits
40
-
41
- ## Why Beads?
42
-
43
- ✨ **AI-Native Design**
44
- - Built specifically for AI-assisted development workflows
45
- - CLI-first interface works seamlessly with AI coding agents
46
- - No context switching to web UIs
47
-
48
- 🚀 **Developer Focused**
49
- - Issues live in your repo, right next to your code
50
- - Works offline, syncs when you push
51
- - Fast, lightweight, and stays out of your way
52
-
53
- 🔧 **Git Integration**
54
- - Automatic sync with git commits
55
- - Branch-aware issue tracking
56
- - Intelligent JSONL merge resolution
57
-
58
- ## Get Started with Beads
59
-
60
- Try Beads in your own projects:
61
-
62
- ```bash
63
- # Install Beads
64
- curl -sSL https://raw.githubusercontent.com/steveyegge/beads/main/scripts/install.sh | bash
65
-
66
- # Initialize in your repo
67
- bd init
68
-
69
- # Create your first issue
70
- bd create "Try out Beads"
71
- ```
72
-
73
- ## Learn More
74
-
75
- - **Documentation**: [github.com/steveyegge/beads/docs](https://github.com/steveyegge/beads/tree/main/docs)
76
- - **Quick Start Guide**: Run `bd quickstart`
77
- - **Examples**: [github.com/steveyegge/beads/examples](https://github.com/steveyegge/beads/tree/main/examples)
78
-
79
- ---
80
-
81
- *Beads: Issue tracking that moves at the speed of thought* ⚡
@@ -1,61 +0,0 @@
1
- # Beads Configuration File
2
- # This file configures default behavior for all bd commands in this repository
3
- # All settings can also be set via environment variables (BD_* prefix)
4
- # or overridden with command-line flags
5
-
6
- # Issue prefix for this repository (used by bd init)
7
- # If not set, bd init will auto-detect from directory name
8
- # Example: issue-prefix: "myproject" creates issues like "myproject-1", "myproject-2", etc.
9
- # issue-prefix: ""
10
-
11
- # Use no-db mode: load from JSONL, no SQLite, write back after each command
12
- # When true, bd will use .beads/issues.jsonl as the source of truth
13
- # instead of SQLite database
14
- # no-db: false
15
-
16
- # Disable daemon for RPC communication (forces direct database access)
17
- # no-daemon: false
18
-
19
- # Disable auto-flush of database to JSONL after mutations
20
- # no-auto-flush: false
21
-
22
- # Disable auto-import from JSONL when it's newer than database
23
- # no-auto-import: false
24
-
25
- # Enable JSON output by default
26
- # json: false
27
-
28
- # Default actor for audit trails (overridden by BD_ACTOR or --actor)
29
- # actor: ""
30
-
31
- # Path to database (overridden by BEADS_DB or --db)
32
- # db: ""
33
-
34
- # Auto-start daemon if not running (can also use BEADS_AUTO_START_DAEMON)
35
- # auto-start-daemon: true
36
-
37
- # Debounce interval for auto-flush (can also use BEADS_FLUSH_DEBOUNCE)
38
- # flush-debounce: "5s"
39
-
40
- # Git branch for beads commits (bd sync will commit to this branch)
41
- # IMPORTANT: Set this for team projects so all clones use the same sync branch.
42
- # This setting persists across clones (unlike database config which is gitignored).
43
- # Can also use BEADS_SYNC_BRANCH env var for local override.
44
- # If not set, bd sync will require you to run 'bd config set sync.branch <branch>'.
45
- sync-branch: "beads-sync"
46
- # Multi-repo configuration (experimental - bd-307)
47
- # Allows hydrating from multiple repositories and routing writes to the correct JSONL
48
- # repos:
49
- # primary: "." # Primary repo (where this database lives)
50
- # additional: # Additional repos to hydrate from (read-only)
51
- # - ~/beads-planning # Personal planning repo
52
- # - ~/work-planning # Work planning repo
53
-
54
- # Integration settings (access with 'bd config get/set')
55
- # These are stored in the database, not in this file:
56
- # - jira.url
57
- # - jira.project
58
- # - linear.url
59
- # - linear.api-key
60
- # - github.org
61
- # - github.repo
@@ -1 +0,0 @@
1
- {"id":"opencode-agent-skills-md-19j","ts":"2025-12-12T15:00:09.459708778Z","by":"git-history-backfill","reason":"recovered from git history (pruned from manifest)"}
@@ -1,64 +0,0 @@
1
- {"id":"opencode-agent-skills-md-0te","title":"Filter already-loaded skills from dynamic suggestions","description":"In chat.message handler, after matchSkills(), filter out skills that are in the session's loadedSkills Set before injecting suggestions.","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T09:35:29.423075303-06:00","updated_at":"2025-12-13T09:43:09.546456251-06:00","closed_at":"2025-12-13T09:43:09.546456251-06:00","dependencies":[{"issue_id":"opencode-agent-skills-md-0te","depends_on_id":"opencode-agent-skills-md-rfb","type":"blocks","created_at":"2025-12-13T09:35:36.369390257-06:00","created_by":"daemon"}]}
2
- {"id":"opencode-agent-skills-md-12p","title":"Delete .opencode/plugin/test-framework.ts","description":"Remove .opencode/plugin/test-framework.ts - no longer needed after preflight logic is integrated into main plugin.","status":"closed","priority":3,"issue_type":"task","created_at":"2025-12-11T23:25:01.573207904-06:00","updated_at":"2025-12-11T23:32:45.200856775-06:00","closed_at":"2025-12-11T23:32:45.200856775-06:00","dependencies":[{"issue_id":"opencode-agent-skills-md-12p","depends_on_id":"opencode-agent-skills-md-w39","type":"blocks","created_at":"2025-12-11T23:25:24.90381016-06:00","created_by":"daemon"}]}
3
- {"id":"opencode-agent-skills-md-2fl","title":"Add getSkillSummaries() to src/skills.ts","description":"Add getSkillSummaries(directory) function that returns Array\u003c{name: string, description: string}\u003e for all discovered skills. Used by preflight to build the evaluation prompt.","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-11T23:24:59.806069936-06:00","updated_at":"2025-12-11T23:29:28.77719484-06:00","closed_at":"2025-12-11T23:29:28.77719484-06:00"}
4
- {"id":"opencode-agent-skills-md-2kj","title":"Reorganize modules to break circular dependencies","description":"Create generic findFile() in utils.ts, remove SkillDiscoveryResult in favor of generic type, move injectSkillsList to skills.ts, reorder types closer to usage. Breaks skills.ts \u003c-\u003e claude.ts and skills.ts \u003c-\u003e utils.ts cycles.","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-11T15:49:55.631292958-06:00","updated_at":"2025-12-11T15:53:56.102314236-06:00","closed_at":"2025-12-11T15:53:56.102314236-06:00"}
5
- {"id":"opencode-agent-skills-md-2wy","title":"Implement Scott-style forced activation with simplified preflight","description":"Change preflight to simple JSON-only prompt (scalable) and inject Scott-style MANDATORY activation sequence instead of passive suggestions","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-12T01:45:42.327007206-06:00","updated_at":"2025-12-12T01:46:57.17318973-06:00","closed_at":"2025-12-12T01:46:57.17318973-06:00"}
6
- {"id":"opencode-agent-skills-md-48v","title":"Delete analysis and testing scripts","description":"Remove check-scores.ts, check-threshold.ts, compare-models.ts, test-edge-cases.ts, validate-semantic.ts, model-analysis.json, EMBEDDING-ANALYSIS.md. Already archived to gist: https://gist.github.com/joshuadavidthomas/4558be551b30ae85580ed274377e92b8","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-12T12:48:05.245927007-06:00","updated_at":"2025-12-12T15:07:09.439063879-06:00","closed_at":"2025-12-12T15:07:09.439063879-06:00","dependencies":[{"issue_id":"opencode-agent-skills-md-48v","depends_on_id":"opencode-agent-skills-md-p7c","type":"blocks","created_at":"2025-12-12T12:48:09.283336316-06:00","created_by":"daemon"}]}
7
- {"id":"opencode-agent-skills-md-4bx","title":"Improve meta-conversation detection in preflight prompt","description":"Add better detection for: numbered list responses, questions to assistant, short responses (yes/no/ok), and meta-discussion about implementation","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-12T01:54:45.542239383-06:00","updated_at":"2025-12-12T01:55:24.241097652-06:00","closed_at":"2025-12-12T01:55:24.241097652-06:00"}
8
- {"id":"opencode-agent-skills-md-4it","title":"Epic: Replace LLM preflight with client-side skill matching","description":"Remove network-bound LLM preflight calls. Replace with instant local text search (MiniSearch) + heuristic meta-conversation gate. Keeps Scott-style commitment mechanism but eliminates Enter-key latency.","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-12T09:15:11.430889528-06:00","updated_at":"2025-12-12T09:45:19.308812089-06:00","closed_at":"2025-12-12T09:45:19.308812089-06:00"}
9
- {"id":"opencode-agent-skills-md-4it.1","title":"Add minisearch dependency","description":"Install minisearch package for local BM25-style text search. ~10KB, works in Bun.","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-12T09:15:17.238151507-06:00","updated_at":"2025-12-12T09:45:19.300761411-06:00","closed_at":"2025-12-12T09:45:19.300761411-06:00","dependencies":[{"issue_id":"opencode-agent-skills-md-4it.1","depends_on_id":"opencode-agent-skills-md-4it","type":"parent-child","created_at":"2025-12-12T09:15:17.238968454-06:00","created_by":"daemon"}]}
10
- {"id":"opencode-agent-skills-md-4it.2","title":"Implement heuristic meta-conversation gate","description":"Add isMetaConversation() function with pattern matching for: short approvals (yes/no/ok), numbered answers, questions to assistant, meta-discussion phrases. Returns true to skip matching entirely.","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-12T09:15:26.136915596-06:00","updated_at":"2025-12-12T09:45:19.301937006-06:00","closed_at":"2025-12-12T09:45:19.301937006-06:00","dependencies":[{"issue_id":"opencode-agent-skills-md-4it.2","depends_on_id":"opencode-agent-skills-md-4it","type":"parent-child","created_at":"2025-12-12T09:15:26.137904588-06:00","created_by":"daemon"},{"issue_id":"opencode-agent-skills-md-4it.2","depends_on_id":"opencode-agent-skills-md-4it.1","type":"blocks","created_at":"2025-12-12T09:16:15.767824344-06:00","created_by":"daemon"}]}
11
- {"id":"opencode-agent-skills-md-4it.3","title":"Implement MiniSearch index building and querying","description":"Build search index over skill names+descriptions. Cache by skills hash. Query with user message, return top K above score threshold. Include debug logging of scores.","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-12T09:15:32.627956135-06:00","updated_at":"2025-12-12T09:45:19.302988327-06:00","closed_at":"2025-12-12T09:45:19.302988327-06:00","dependencies":[{"issue_id":"opencode-agent-skills-md-4it.3","depends_on_id":"opencode-agent-skills-md-4it","type":"parent-child","created_at":"2025-12-12T09:15:32.628671088-06:00","created_by":"daemon"},{"issue_id":"opencode-agent-skills-md-4it.3","depends_on_id":"opencode-agent-skills-md-4it.1","type":"blocks","created_at":"2025-12-12T09:16:15.78034014-06:00","created_by":"daemon"}]}
12
- {"id":"opencode-agent-skills-md-4it.4","title":"Create matchSkills() function combining gate + search","description":"Main entry point: (1) check heuristic gate, (2) run local search, (3) filter by threshold, (4) return MatchResult with skills and reason. Replace makePreflightCallWithTimeout().","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-12T09:15:38.215452325-06:00","updated_at":"2025-12-12T09:45:19.30420526-06:00","closed_at":"2025-12-12T09:45:19.30420526-06:00","dependencies":[{"issue_id":"opencode-agent-skills-md-4it.4","depends_on_id":"opencode-agent-skills-md-4it","type":"parent-child","created_at":"2025-12-12T09:15:38.216232181-06:00","created_by":"daemon"},{"issue_id":"opencode-agent-skills-md-4it.4","depends_on_id":"opencode-agent-skills-md-4it.2","type":"blocks","created_at":"2025-12-12T09:16:15.793587629-06:00","created_by":"daemon"},{"issue_id":"opencode-agent-skills-md-4it.4","depends_on_id":"opencode-agent-skills-md-4it.3","type":"blocks","created_at":"2025-12-12T09:16:15.806931651-06:00","created_by":"daemon"}]}
13
- {"id":"opencode-agent-skills-md-4it.5","title":"Remove LLM preflight code from preflight.ts","description":"Delete: callAnthropicOAuth, callOpenAICompatibleOAuth, callAnthropicWithKey, callOpenAIWithKey, makePreflightCall, makePreflightCallWithTimeout, buildPreflightPrompt, parseSkillResponse. Also remove CHEAP_MODELS, auth types, related imports.","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-12T09:15:46.806116093-06:00","updated_at":"2025-12-12T09:45:19.305027649-06:00","closed_at":"2025-12-12T09:45:19.305027649-06:00","dependencies":[{"issue_id":"opencode-agent-skills-md-4it.5","depends_on_id":"opencode-agent-skills-md-4it","type":"parent-child","created_at":"2025-12-12T09:15:46.806947967-06:00","created_by":"daemon"},{"issue_id":"opencode-agent-skills-md-4it.5","depends_on_id":"opencode-agent-skills-md-4it.4","type":"blocks","created_at":"2025-12-12T09:16:15.819133903-06:00","created_by":"daemon"}]}
14
- {"id":"opencode-agent-skills-md-4it.6","title":"Simplify plugin.ts chat.message hook","description":"Update chat.message to use matchSkills() instead of LLM call. Remove chat.params hook (no longer needed). Remove sessionAuthCache, apiKeyAuth, ensureApiKeyAuth(). Much simpler hook logic.","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-12T09:15:52.249796983-06:00","updated_at":"2025-12-12T09:45:19.306012194-06:00","closed_at":"2025-12-12T09:45:19.306012194-06:00","dependencies":[{"issue_id":"opencode-agent-skills-md-4it.6","depends_on_id":"opencode-agent-skills-md-4it","type":"parent-child","created_at":"2025-12-12T09:15:52.25056155-06:00","created_by":"daemon"},{"issue_id":"opencode-agent-skills-md-4it.6","depends_on_id":"opencode-agent-skills-md-4it.4","type":"blocks","created_at":"2025-12-12T09:16:15.832502342-06:00","created_by":"daemon"}]}
15
- {"id":"opencode-agent-skills-md-4it.7","title":"Update injection block to 'evaluate then activate' pattern","description":"Change from MANDATORY ACTIVATION to SKILL EVALUATION. Add EVALUATE/DECIDE/ACTIVATE steps. Change from 'have been identified' to 'may be relevant'. Add 'No skills needed' escape path.","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-12T09:15:58.113603696-06:00","updated_at":"2025-12-12T09:45:19.306949189-06:00","closed_at":"2025-12-12T09:45:19.306949189-06:00","dependencies":[{"issue_id":"opencode-agent-skills-md-4it.7","depends_on_id":"opencode-agent-skills-md-4it","type":"parent-child","created_at":"2025-12-12T09:15:58.114671536-06:00","created_by":"daemon"},{"issue_id":"opencode-agent-skills-md-4it.7","depends_on_id":"opencode-agent-skills-md-4it.6","type":"blocks","created_at":"2025-12-12T09:16:15.84510431-06:00","created_by":"daemon"}]}
16
- {"id":"opencode-agent-skills-md-4it.8","title":"Test and validate client-side matching","description":"Verify: (1) Enter latency eliminated, (2) meta-conversation returns [], (3) real requests match correct skills, (4) scores logged for tuning. Run 8+ test messages from earlier session.","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-12T09:16:03.904788308-06:00","updated_at":"2025-12-12T09:45:19.307839998-06:00","closed_at":"2025-12-12T09:45:19.307839998-06:00","dependencies":[{"issue_id":"opencode-agent-skills-md-4it.8","depends_on_id":"opencode-agent-skills-md-4it","type":"parent-child","created_at":"2025-12-12T09:16:03.905691797-06:00","created_by":"daemon"},{"issue_id":"opencode-agent-skills-md-4it.8","depends_on_id":"opencode-agent-skills-md-4it.5","type":"blocks","created_at":"2025-12-12T09:16:15.857964267-06:00","created_by":"daemon"},{"issue_id":"opencode-agent-skills-md-4it.8","depends_on_id":"opencode-agent-skills-md-4it.6","type":"blocks","created_at":"2025-12-12T09:16:15.870965821-06:00","created_by":"daemon"},{"issue_id":"opencode-agent-skills-md-4it.8","depends_on_id":"opencode-agent-skills-md-4it.7","type":"blocks","created_at":"2025-12-12T09:16:15.883835045-06:00","created_by":"daemon"}]}
17
- {"id":"opencode-agent-skills-md-5rt","title":"Create src/preflight.ts - LLM preflight call logic","description":"Create preflight.ts with:\n- findCheapestModel(): Select Haiku \u003e gpt-4o-mini \u003e gemini-flash\n- makePreflightCall(): Support both OAuth fetch and API key auth\n- parseSkillResponse(): Extract JSON array from LLM response\n- PREFLIGHT_TIMEOUT_MS = 2000\n- Prompt template for skill evaluation","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-11T23:24:59.247808519-06:00","updated_at":"2025-12-11T23:30:37.370989544-06:00","closed_at":"2025-12-11T23:30:37.370989544-06:00","dependencies":[{"issue_id":"opencode-agent-skills-md-5rt","depends_on_id":"opencode-agent-skills-md-2fl","type":"blocks","created_at":"2025-12-11T23:25:23.765941577-06:00","created_by":"daemon"},{"issue_id":"opencode-agent-skills-md-5rt","depends_on_id":"opencode-agent-skills-md-bar","type":"blocks","created_at":"2025-12-11T23:25:23.78402797-06:00","created_by":"daemon"}]}
18
- {"id":"opencode-agent-skills-md-5zo","title":"Refactor plugin.ts into modules","description":"","status":"closed","priority":2,"issue_type":"epic","created_at":"2025-12-11T14:23:35.561297637-06:00","updated_at":"2025-12-11T14:30:33.091125737-06:00","closed_at":"2025-12-11T14:30:33.091125737-06:00"}
19
- {"id":"opencode-agent-skills-md-5zo.1","title":"Create src/utils.ts with parsing and helper functions","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-11T14:23:39.074526959-06:00","updated_at":"2025-12-11T14:26:30.688903474-06:00","closed_at":"2025-12-11T14:26:30.688903474-06:00","dependencies":[{"issue_id":"opencode-agent-skills-md-5zo.1","depends_on_id":"opencode-agent-skills-md-5zo","type":"parent-child","created_at":"2025-12-11T14:23:39.075357181-06:00","created_by":"daemon"}]}
20
- {"id":"opencode-agent-skills-md-5zo.2","title":"Create src/claude.ts with Claude Code compatibility","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-11T14:23:39.779815928-06:00","updated_at":"2025-12-11T14:25:38.866179258-06:00","closed_at":"2025-12-11T14:25:38.866179258-06:00","dependencies":[{"issue_id":"opencode-agent-skills-md-5zo.2","depends_on_id":"opencode-agent-skills-md-5zo","type":"parent-child","created_at":"2025-12-11T14:23:39.780578709-06:00","created_by":"daemon"}]}
21
- {"id":"opencode-agent-skills-md-5zo.3","title":"Create src/skills.ts with core skill logic","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-11T14:23:40.433600824-06:00","updated_at":"2025-12-11T14:26:23.419210127-06:00","closed_at":"2025-12-11T14:26:23.419210127-06:00","dependencies":[{"issue_id":"opencode-agent-skills-md-5zo.3","depends_on_id":"opencode-agent-skills-md-5zo","type":"parent-child","created_at":"2025-12-11T14:23:40.434338347-06:00","created_by":"daemon"}]}
22
- {"id":"opencode-agent-skills-md-5zo.4","title":"Create src/superpowers.ts with bootstrap logic","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-11T14:23:41.072413684-06:00","updated_at":"2025-12-11T14:26:41.291846921-06:00","closed_at":"2025-12-11T14:26:41.291846921-06:00","dependencies":[{"issue_id":"opencode-agent-skills-md-5zo.4","depends_on_id":"opencode-agent-skills-md-5zo","type":"parent-child","created_at":"2025-12-11T14:23:41.073221713-06:00","created_by":"daemon"}]}
23
- {"id":"opencode-agent-skills-md-5zo.5","title":"Refactor src/plugin.ts to import from new modules","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-11T14:23:41.821033937-06:00","updated_at":"2025-12-11T14:29:45.359550825-06:00","closed_at":"2025-12-11T14:29:45.359550825-06:00","dependencies":[{"issue_id":"opencode-agent-skills-md-5zo.5","depends_on_id":"opencode-agent-skills-md-5zo","type":"parent-child","created_at":"2025-12-11T14:23:41.821804985-06:00","created_by":"daemon"},{"issue_id":"opencode-agent-skills-md-5zo.5","depends_on_id":"opencode-agent-skills-md-5zo.1","type":"blocks","created_at":"2025-12-11T14:23:51.808047095-06:00","created_by":"daemon"},{"issue_id":"opencode-agent-skills-md-5zo.5","depends_on_id":"opencode-agent-skills-md-5zo.2","type":"blocks","created_at":"2025-12-11T14:23:51.823527751-06:00","created_by":"daemon"},{"issue_id":"opencode-agent-skills-md-5zo.5","depends_on_id":"opencode-agent-skills-md-5zo.3","type":"blocks","created_at":"2025-12-11T14:23:51.843872058-06:00","created_by":"daemon"},{"issue_id":"opencode-agent-skills-md-5zo.5","depends_on_id":"opencode-agent-skills-md-5zo.4","type":"blocks","created_at":"2025-12-11T14:23:51.858312338-06:00","created_by":"daemon"}]}
24
- {"id":"opencode-agent-skills-md-5zo.6","title":"Rename plugin.test.ts to utils.test.ts","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-11T14:23:42.414958849-06:00","updated_at":"2025-12-11T14:27:30.866711465-06:00","closed_at":"2025-12-11T14:27:30.866711465-06:00","dependencies":[{"issue_id":"opencode-agent-skills-md-5zo.6","depends_on_id":"opencode-agent-skills-md-5zo","type":"parent-child","created_at":"2025-12-11T14:23:42.415728975-06:00","created_by":"daemon"},{"issue_id":"opencode-agent-skills-md-5zo.6","depends_on_id":"opencode-agent-skills-md-5zo.1","type":"blocks","created_at":"2025-12-11T14:23:52.433028397-06:00","created_by":"daemon"}]}
25
- {"id":"opencode-agent-skills-md-5zo.7","title":"Verify tests and typecheck pass","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-11T14:23:43.017035274-06:00","updated_at":"2025-12-11T14:30:23.601415553-06:00","closed_at":"2025-12-11T14:30:23.601415553-06:00","dependencies":[{"issue_id":"opencode-agent-skills-md-5zo.7","depends_on_id":"opencode-agent-skills-md-5zo","type":"parent-child","created_at":"2025-12-11T14:23:43.017979435-06:00","created_by":"daemon"},{"issue_id":"opencode-agent-skills-md-5zo.7","depends_on_id":"opencode-agent-skills-md-5zo.5","type":"blocks","created_at":"2025-12-11T14:23:53.299560946-06:00","created_by":"daemon"},{"issue_id":"opencode-agent-skills-md-5zo.7","depends_on_id":"opencode-agent-skills-md-5zo.6","type":"blocks","created_at":"2025-12-11T14:23:53.313004802-06:00","created_by":"daemon"}]}
26
- {"id":"opencode-agent-skills-md-84f","title":"Modify UseSkill factory to accept onSkillLoaded callback","description":"Add optional callback parameter to UseSkill factory: onSkillLoaded?: (sessionID: string, skillName: string) =\u003e void. Call it after successful skill load in execute().","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T09:35:26.624000197-06:00","updated_at":"2025-12-13T09:41:29.005625873-06:00","closed_at":"2025-12-13T09:41:29.005625873-06:00"}
27
- {"id":"opencode-agent-skills-md-924","title":"Investigate LLM eval for skill activation reliability","description":"Improve skill activation reliability using techniques from blog post: https://scottspence.com/posts/how-to-make-claude-code-skills-activate-reliably\n\nCurrently skills are injected as a passive list (~20% activation). Two approaches to improve:\n1. Forced eval: Assertive prompting requiring YES/NO evaluation (~84% success)\n2. LLM eval: Pre-evaluate with cheap model like Haiku (~80% success)\n\nKey findings:\n- chat.message hook fires on EVERY user message (not just first)\n- SDK's client.provider.list() may expose API keys\n- Plugins have full network access (fetch)\n\nNext steps:\n1. Test if client.provider.list() returns API keys\n2. Test making LLM call from within plugin\n3. Choose approach (forced eval vs LLM eval vs hybrid)\n\nHandoff gist: https://gist.github.com/joshuadavidthomas/c1aa97afa3cbf03313fd91c9b4e2f25a","status":"closed","priority":1,"issue_type":"feature","created_at":"2025-12-11T19:03:57.752076888-06:00","updated_at":"2025-12-11T23:25:30.636361047-06:00","closed_at":"2025-12-11T23:25:30.636361047-06:00"}
28
- {"id":"opencode-agent-skills-md-bar","title":"Add extractTextFromParts() to src/utils.ts","description":"Add extractTextFromParts(parts: Part[]) function that extracts user text content from message parts array. Returns concatenated text from all text-type parts.","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-11T23:25:00.33258978-06:00","updated_at":"2025-12-11T23:29:28.778896977-06:00","closed_at":"2025-12-11T23:29:28.778896977-06:00"}
29
- {"id":"opencode-agent-skills-md-boc","title":"Remove debugLog infrastructure","description":"Remove debug logging infrastructure that was used during development.\n\nDelete:\n- debugLog() function from src/utils.ts\n- initDebugLog() function from src/utils.ts \n- DEBUG_LOG_PATH variable from src/utils.ts\n- All debugLog calls from src/preflight.ts (8 calls)\n- debugLog import from src/preflight.ts\n- initDebugLog import and call from src/plugin.ts","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-12T13:56:02.395655356-06:00","updated_at":"2025-12-12T13:57:35.8985952-06:00","closed_at":"2025-12-12T13:57:35.8985952-06:00"}
30
- {"id":"opencode-agent-skills-md-bry","title":"Extract common skill discovery pattern and fix redundant fs.stat() calls","description":"Extract tryDiscoverSkill() helper to eliminate 3 instances of duplicated SKILL.md validation. Add SkillDiscoveryResult type alias for cleaner function signatures. Fix 2 redundant fs.stat() calls in discoverPluginCacheSkills by using Dirent .isDirectory(). Affects: src/skills.ts and src/claude.ts","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-11T15:21:20.336139121-06:00","updated_at":"2025-12-11T15:23:58.531133265-06:00","closed_at":"2025-12-11T15:23:58.531133265-06:00"}
31
- {"id":"opencode-agent-skills-md-dcn","title":"Epic: Improve skill matching accuracy with BM25 tuning + semantic search","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-12T10:25:51.502557921-06:00","updated_at":"2025-12-12T11:09:50.353841092-06:00","closed_at":"2025-12-12T11:09:50.353841092-06:00"}
32
- {"id":"opencode-agent-skills-md-dcn.1","title":"Add stopword filtering to MiniSearch processTerm","description":"Add STOPWORDS set with common English words (it, is, this, that, in, on, at, to, a, the, etc). Implement processTerm function that returns null for stopwords. Should eliminate garbage matches from common words.","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-12T10:25:58.613772536-06:00","updated_at":"2025-12-12T10:30:20.114858973-06:00","closed_at":"2025-12-12T10:30:20.114858973-06:00","dependencies":[{"issue_id":"opencode-agent-skills-md-dcn.1","depends_on_id":"opencode-agent-skills-md-dcn","type":"parent-child","created_at":"2025-12-12T10:25:58.614520149-06:00","created_by":"daemon"}]}
33
- {"id":"opencode-agent-skills-md-dcn.10","title":"Integrate semantic scoring with existing matchSkills flow","description":"Options: (A) Replace BM25 entirely, (B) Hybrid: BM25 first-pass + semantic rerank, (C) Parallel: run both, combine scores. Likely A or B. Update matchSkills() to use semantic approach.","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-12T10:26:21.649479137-06:00","updated_at":"2025-12-12T11:07:15.206786342-06:00","closed_at":"2025-12-12T11:07:15.206786342-06:00","dependencies":[{"issue_id":"opencode-agent-skills-md-dcn.10","depends_on_id":"opencode-agent-skills-md-dcn","type":"parent-child","created_at":"2025-12-12T10:26:21.650497571-06:00","created_by":"daemon"},{"issue_id":"opencode-agent-skills-md-dcn.10","depends_on_id":"opencode-agent-skills-md-dcn.9","type":"blocks","created_at":"2025-12-12T10:26:37.036363186-06:00","created_by":"daemon"}]}
34
- {"id":"opencode-agent-skills-md-dcn.11","title":"Validate semantic search improvements","description":"Test semantic matching handles: (1) Conceptual synonyms ('make a chart' -\u003e xlsx), (2) Paraphrased requests, (3) Still filters meta-conversations correctly, (4) Latency acceptable (\u003c500ms). Compare to BM25 baseline.","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-12T10:26:23.67912922-06:00","updated_at":"2025-12-12T11:09:48.265680418-06:00","closed_at":"2025-12-12T11:09:48.265680418-06:00","dependencies":[{"issue_id":"opencode-agent-skills-md-dcn.11","depends_on_id":"opencode-agent-skills-md-dcn","type":"parent-child","created_at":"2025-12-12T10:26:23.679920826-06:00","created_by":"daemon"},{"issue_id":"opencode-agent-skills-md-dcn.11","depends_on_id":"opencode-agent-skills-md-dcn.10","type":"blocks","created_at":"2025-12-12T10:26:37.050706931-06:00","created_by":"daemon"}]}
35
- {"id":"opencode-agent-skills-md-dcn.2","title":"Add minimum term length filter (3 chars)","description":"Extend processTerm to return null for terms shorter than 3 characters. Prevents single-letter tokens like 's' from matching everything.","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-12T10:26:00.011555125-06:00","updated_at":"2025-12-12T10:31:32.987313783-06:00","closed_at":"2025-12-12T10:31:32.987313783-06:00","dependencies":[{"issue_id":"opencode-agent-skills-md-dcn.2","depends_on_id":"opencode-agent-skills-md-dcn","type":"parent-child","created_at":"2025-12-12T10:26:00.012578599-06:00","created_by":"daemon"}]}
36
- {"id":"opencode-agent-skills-md-dcn.3","title":"Add conditional fuzzy matching (only terms \u003e= 5 chars)","description":"Change fuzzy from constant 0.2 to function: (term) =\u003e term.length \u003e= 5 ? 0.2 : false. Prevents short terms from fuzzy-matching everything while keeping typo tolerance for longer terms.","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-12T10:26:02.828033881-06:00","updated_at":"2025-12-12T10:32:36.464117675-06:00","closed_at":"2025-12-12T10:32:36.464117675-06:00","dependencies":[{"issue_id":"opencode-agent-skills-md-dcn.3","depends_on_id":"opencode-agent-skills-md-dcn","type":"parent-child","created_at":"2025-12-12T10:26:02.82892241-06:00","created_by":"daemon"}]}
37
- {"id":"opencode-agent-skills-md-dcn.4","title":"Raise matching threshold from 10 to 15-20","description":"Increase score threshold to require stronger matches. Test with 15 first, may need 20. Goal: filter weak matches while keeping strong skill-relevant ones.","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-12T10:26:03.975287131-06:00","updated_at":"2025-12-12T10:30:36.901572106-06:00","closed_at":"2025-12-12T10:30:36.901572106-06:00","dependencies":[{"issue_id":"opencode-agent-skills-md-dcn.4","depends_on_id":"opencode-agent-skills-md-dcn","type":"parent-child","created_at":"2025-12-12T10:26:03.976050413-06:00","created_by":"daemon"}]}
38
- {"id":"opencode-agent-skills-md-dcn.5","title":"Test and validate BM25 improvements","description":"Test cases: (1) Meta-conversations return no skills, (2) Casual statements like 'let me check' return no skills, (3) Clear task requests match correct skills, (4) Verify threshold feels right. Check debug logs for scoring.","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-12T10:26:06.162413251-06:00","updated_at":"2025-12-12T10:34:14.261632187-06:00","closed_at":"2025-12-12T10:34:14.261632187-06:00","dependencies":[{"issue_id":"opencode-agent-skills-md-dcn.5","depends_on_id":"opencode-agent-skills-md-dcn","type":"parent-child","created_at":"2025-12-12T10:26:06.163235434-06:00","created_by":"daemon"},{"issue_id":"opencode-agent-skills-md-dcn.5","depends_on_id":"opencode-agent-skills-md-dcn.1","type":"blocks","created_at":"2025-12-12T10:26:34.468026386-06:00","created_by":"daemon"},{"issue_id":"opencode-agent-skills-md-dcn.5","depends_on_id":"opencode-agent-skills-md-dcn.2","type":"blocks","created_at":"2025-12-12T10:26:34.482038735-06:00","created_by":"daemon"},{"issue_id":"opencode-agent-skills-md-dcn.5","depends_on_id":"opencode-agent-skills-md-dcn.3","type":"blocks","created_at":"2025-12-12T10:26:34.495828854-06:00","created_by":"daemon"},{"issue_id":"opencode-agent-skills-md-dcn.5","depends_on_id":"opencode-agent-skills-md-dcn.4","type":"blocks","created_at":"2025-12-12T10:26:34.508849038-06:00","created_by":"daemon"}]}
39
- {"id":"opencode-agent-skills-md-dcn.6","title":"Research smallest viable embedding model for skill matching","description":"Investigate options: all-MiniLM-L6-v2 (~90MB), all-minilm-L6-v2-quantized (~23MB), or smaller alternatives. Consider transformers.js, onnxruntime-node, or @xenova/transformers. Goal: \u003c50MB model, \u003c200ms latency per query.","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-12T10:26:13.03224829-06:00","updated_at":"2025-12-12T11:00:39.291009748-06:00","closed_at":"2025-12-12T11:00:39.291009748-06:00","dependencies":[{"issue_id":"opencode-agent-skills-md-dcn.6","depends_on_id":"opencode-agent-skills-md-dcn","type":"parent-child","created_at":"2025-12-12T10:26:13.033009769-06:00","created_by":"daemon"},{"issue_id":"opencode-agent-skills-md-dcn.6","depends_on_id":"opencode-agent-skills-md-dcn.5","type":"blocks","created_at":"2025-12-12T10:26:38.745089094-06:00","created_by":"daemon"}]}
40
- {"id":"opencode-agent-skills-md-dcn.7","title":"Add embedding model dependency","description":"Add chosen embedding library (likely @xenova/transformers or similar). Ensure works with Bun runtime. May need to handle first-use model download gracefully.","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-12T10:26:15.007031396-06:00","updated_at":"2025-12-12T11:00:55.798419021-06:00","closed_at":"2025-12-12T11:00:55.798419021-06:00","dependencies":[{"issue_id":"opencode-agent-skills-md-dcn.7","depends_on_id":"opencode-agent-skills-md-dcn","type":"parent-child","created_at":"2025-12-12T10:26:15.007841767-06:00","created_by":"daemon"},{"issue_id":"opencode-agent-skills-md-dcn.7","depends_on_id":"opencode-agent-skills-md-dcn.6","type":"blocks","created_at":"2025-12-12T10:26:36.99354849-06:00","created_by":"daemon"}]}
41
- {"id":"opencode-agent-skills-md-dcn.8","title":"Implement skill embedding at plugin startup","description":"Pre-compute embeddings for all skill names+descriptions at startup. Cache embeddings keyed by skills hash (similar to MiniSearch cache). Store as Float32Array for efficient cosine similarity.","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-12T10:26:16.994992361-06:00","updated_at":"2025-12-12T11:03:07.672235974-06:00","closed_at":"2025-12-12T11:03:07.672235974-06:00","dependencies":[{"issue_id":"opencode-agent-skills-md-dcn.8","depends_on_id":"opencode-agent-skills-md-dcn","type":"parent-child","created_at":"2025-12-12T10:26:16.995919203-06:00","created_by":"daemon"},{"issue_id":"opencode-agent-skills-md-dcn.8","depends_on_id":"opencode-agent-skills-md-dcn.7","type":"blocks","created_at":"2025-12-12T10:26:37.007913826-06:00","created_by":"daemon"}]}
42
- {"id":"opencode-agent-skills-md-dcn.9","title":"Implement semantic query function","description":"Create semanticMatchSkills(query, embeddings) that: (1) embeds query, (2) computes cosine similarity with each skill, (3) returns skills above threshold sorted by score. Include debug logging of semantic scores.","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-12T10:26:19.126863877-06:00","updated_at":"2025-12-12T11:10:17.678978383-06:00","closed_at":"2025-12-12T11:10:17.678978383-06:00","dependencies":[{"issue_id":"opencode-agent-skills-md-dcn.9","depends_on_id":"opencode-agent-skills-md-dcn","type":"parent-child","created_at":"2025-12-12T10:26:19.127629604-06:00","created_by":"daemon"},{"issue_id":"opencode-agent-skills-md-dcn.9","depends_on_id":"opencode-agent-skills-md-dcn.8","type":"blocks","created_at":"2025-12-12T10:26:37.021853888-06:00","created_by":"daemon"}]}
43
- {"id":"opencode-agent-skills-md-jwn","title":"Improve error messages with 'Did you mean...' fuzzy matching suggestions","description":"","status":"closed","priority":2,"issue_type":"epic","created_at":"2025-12-11T13:45:59.966290839-06:00","updated_at":"2025-12-11T13:58:20.685001906-06:00","closed_at":"2025-12-11T13:58:20.685001906-06:00"}
44
- {"id":"opencode-agent-skills-md-jwn.1","title":"Add levenshtein() utility function","description":"Implement Levenshtein edit distance algorithm (~15 lines). Used as fallback when prefix/substring matching doesn't apply.","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-11T13:46:05.638538153-06:00","updated_at":"2025-12-11T13:53:40.957288768-06:00","closed_at":"2025-12-11T13:53:40.957288768-06:00","dependencies":[{"issue_id":"opencode-agent-skills-md-jwn.1","depends_on_id":"opencode-agent-skills-md-jwn","type":"parent-child","created_at":"2025-12-11T13:46:05.639979417-06:00","created_by":"daemon"}]}
45
- {"id":"opencode-agent-skills-md-jwn.2","title":"Add findClosestMatch() utility function","description":"Combined scoring function: prefix match (0.9+), substring match (0.7), then Levenshtein similarity. Returns best match above 0.4 threshold. Case-insensitive.","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-11T13:46:07.156957664-06:00","updated_at":"2025-12-11T13:54:05.909120919-06:00","closed_at":"2025-12-11T13:54:05.909120919-06:00","dependencies":[{"issue_id":"opencode-agent-skills-md-jwn.2","depends_on_id":"opencode-agent-skills-md-jwn","type":"parent-child","created_at":"2025-12-11T13:46:07.158254775-06:00","created_by":"daemon"}]}
46
- {"id":"opencode-agent-skills-md-jwn.3","title":"Update use_skill error handling with fuzzy suggestion","description":"Replace 'Available skills: ...' with 'Did you mean X?' when close match found. Fall back to 'Use find_skills to list available skills.' when no close match.","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-11T13:46:08.778750232-06:00","updated_at":"2025-12-11T13:54:27.954767995-06:00","closed_at":"2025-12-11T13:54:27.954767995-06:00","dependencies":[{"issue_id":"opencode-agent-skills-md-jwn.3","depends_on_id":"opencode-agent-skills-md-jwn","type":"parent-child","created_at":"2025-12-11T13:46:08.779801606-06:00","created_by":"daemon"}]}
47
- {"id":"opencode-agent-skills-md-jwn.4","title":"Update read_skill_file error handling with fuzzy suggestion","description":"Add 'Did you mean X?' suggestion when skill name not found.","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-11T13:46:09.735123758-06:00","updated_at":"2025-12-11T13:54:45.777229713-06:00","closed_at":"2025-12-11T13:54:45.777229713-06:00","dependencies":[{"issue_id":"opencode-agent-skills-md-jwn.4","depends_on_id":"opencode-agent-skills-md-jwn","type":"parent-child","created_at":"2025-12-11T13:46:09.735972859-06:00","created_by":"daemon"}]}
48
- {"id":"opencode-agent-skills-md-jwn.5","title":"Update run_skill_script error handling with fuzzy suggestion","description":"Add 'Did you mean X?' suggestion for both skill name AND script name when not found.","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-11T13:46:10.656976953-06:00","updated_at":"2025-12-11T13:55:07.387865399-06:00","closed_at":"2025-12-11T13:55:07.387865399-06:00","dependencies":[{"issue_id":"opencode-agent-skills-md-jwn.5","depends_on_id":"opencode-agent-skills-md-jwn","type":"parent-child","created_at":"2025-12-11T13:46:10.657734991-06:00","created_by":"daemon"}]}
49
- {"id":"opencode-agent-skills-md-jwn.6","title":"Update find_skills error handling with fuzzy suggestion","description":"When query returns no matches, suggest closest skill names if any are above threshold.","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-11T13:46:11.763574596-06:00","updated_at":"2025-12-11T13:55:29.184292267-06:00","closed_at":"2025-12-11T13:55:29.184292267-06:00","dependencies":[{"issue_id":"opencode-agent-skills-md-jwn.6","depends_on_id":"opencode-agent-skills-md-jwn","type":"parent-child","created_at":"2025-12-11T13:46:11.7648945-06:00","created_by":"daemon"}]}
50
- {"id":"opencode-agent-skills-md-jwn.7","title":"Add tests for fuzzy matching","description":"Test cases: exact match (no suggestion), typo correction, prefix matching, substring matching, no close matches (threshold), case insensitivity.","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-11T13:46:13.041546168-06:00","updated_at":"2025-12-11T13:57:51.802893881-06:00","closed_at":"2025-12-11T13:57:51.802893881-06:00","dependencies":[{"issue_id":"opencode-agent-skills-md-jwn.7","depends_on_id":"opencode-agent-skills-md-jwn","type":"parent-child","created_at":"2025-12-11T13:46:13.042363669-06:00","created_by":"daemon"},{"issue_id":"opencode-agent-skills-md-jwn.7","depends_on_id":"opencode-agent-skills-md-jwn.9","type":"blocks","created_at":"2025-12-11T13:49:20.33710095-06:00","created_by":"daemon"}]}
51
- {"id":"opencode-agent-skills-md-jwn.8","title":"Update CHANGELOG with fuzzy matching feature","description":"Add entry for 'Did you mean...' suggestions in error messages. Document which tools are affected and the matching behavior (prefix, substring, Levenshtein).","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-11T13:48:17.35661447-06:00","updated_at":"2025-12-11T13:58:06.715608912-06:00","closed_at":"2025-12-11T13:58:06.715608912-06:00","dependencies":[{"issue_id":"opencode-agent-skills-md-jwn.8","depends_on_id":"opencode-agent-skills-md-jwn","type":"parent-child","created_at":"2025-12-11T13:48:17.357437599-06:00","created_by":"daemon"}]}
52
- {"id":"opencode-agent-skills-md-jwn.9","title":"Set up test infrastructure","description":"Create initial test setup with Bun's built-in test runner. Add first test file structure and verify bun test works.","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-11T13:49:15.113973313-06:00","updated_at":"2025-12-11T13:56:00.020805462-06:00","closed_at":"2025-12-11T13:56:00.020805462-06:00","dependencies":[{"issue_id":"opencode-agent-skills-md-jwn.9","depends_on_id":"opencode-agent-skills-md-jwn","type":"parent-child","created_at":"2025-12-11T13:49:15.11574767-06:00","created_by":"daemon"}]}
53
- {"id":"opencode-agent-skills-md-lls","title":"Clear loaded skills on session compaction and deletion","description":"In event handler: delete session from loadedSkillsPerSession Map on session.compacted and session.deleted events.","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T09:35:30.716512177-06:00","updated_at":"2025-12-13T09:42:50.021871373-06:00","closed_at":"2025-12-13T09:42:50.021871373-06:00","dependencies":[{"issue_id":"opencode-agent-skills-md-lls","depends_on_id":"opencode-agent-skills-md-rfb","type":"blocks","created_at":"2025-12-13T09:35:36.383152451-06:00","created_by":"daemon"}]}
54
- {"id":"opencode-agent-skills-md-oz2","title":"Implement XML structure for preflight skill list","description":"Improve preflight LLM evaluation with chain-of-thought reasoning, generic examples showing description matching, and fuzzy name matching","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-12T01:16:15.414554173-06:00","updated_at":"2025-12-12T01:31:29.436407384-06:00","closed_at":"2025-12-12T01:31:29.436407384-06:00"}
55
- {"id":"opencode-agent-skills-md-p7c","title":"Simplify embedding module - remove multi-model architecture","description":"Remove ModelConfig registry, EmbeddingStrategy, and model selection code. Hardcode all-MiniLM-L6-v2 with q8 quantization. Delete models.ts, simplify service.ts constructor to take no arguments. Keep only summary strategy (name+description). Analysis archived: https://gist.github.com/joshuadavidthomas/4558be551b30ae85580ed274377e92b8","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-12T12:47:54.325567393-06:00","updated_at":"2025-12-12T13:20:28.859010712-06:00","closed_at":"2025-12-12T13:20:28.859015551-06:00"}
56
- {"id":"opencode-agent-skills-md-qu3","title":"Fix UI freeze caused by blocking client.provider.list() call","description":"","status":"closed","priority":0,"issue_type":"bug","created_at":"2025-12-12T00:07:21.205982359-06:00","updated_at":"2025-12-12T00:28:47.270436291-06:00","closed_at":"2025-12-12T00:28:47.270436291-06:00"}
57
- {"id":"opencode-agent-skills-md-rfb","title":"Add loadedSkillsPerSession Map and helper function in plugin.ts","description":"Create Map\u003cstring, Set\u003cstring\u003e\u003e to track loaded skills per session. Add getLoadedSkills() helper that gets or creates the Set for a session ID.","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T09:35:24.78553656-06:00","updated_at":"2025-12-13T09:41:06.044630093-06:00","closed_at":"2025-12-13T09:41:06.044630093-06:00"}
58
- {"id":"opencode-agent-skills-md-rfo","title":"Track loaded skills per session to prevent duplicate suggestions","description":"","status":"closed","priority":2,"issue_type":"feature","created_at":"2025-12-13T09:35:19.363758592-06:00","updated_at":"2025-12-13T09:44:39.413145134-06:00","closed_at":"2025-12-13T09:44:39.413145134-06:00"}
59
- {"id":"opencode-agent-skills-md-tfm","title":"Simplify discoverAllSkills and remove redundant label parameters","description":"Refactor discoverAllSkills to collect all SkillDiscoveryResult[] into one array then process once. Remove unnecessary label parameter from discoverPluginCacheSkills and discoverMarketplaceSkills since they always return claude-plugins.","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-11T15:38:05.508946799-06:00","updated_at":"2025-12-11T15:39:16.212259904-06:00","closed_at":"2025-12-11T15:39:16.212259904-06:00"}
60
- {"id":"opencode-agent-skills-md-u02","title":"Extract tools to src/tools.ts with factory pattern","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-11T14:37:13.744183768-06:00","updated_at":"2025-12-11T14:43:32.866267257-06:00","closed_at":"2025-12-11T14:43:32.866267257-06:00"}
61
- {"id":"opencode-agent-skills-md-vqf","title":"Test and verify preflight skill activation","description":"Manual testing:\n1. New session, first message: verify nothing additional injected\n2. Second message about git: verify git-helper suggested\n3. Message about brainstorming: verify brainstorming suggested \n4. Unrelated message: verify nothing injected\n5. Verify 2s timeout behavior","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-11T23:25:02.568442005-06:00","updated_at":"2025-12-12T00:42:07.216446838-06:00","closed_at":"2025-12-12T00:42:07.216446838-06:00","dependencies":[{"issue_id":"opencode-agent-skills-md-vqf","depends_on_id":"opencode-agent-skills-md-w39","type":"blocks","created_at":"2025-12-11T23:25:25.415332153-06:00","created_by":"daemon"}]}
62
- {"id":"opencode-agent-skills-md-w39","title":"Update src/plugin.ts with preflight integration","description":"Update plugin.ts with:\n- Module-level sessionAuthCache Map\u003csessionID, {oauthFetch, providerId, baseURL}\u003e\n- Module-level apiKeyAuth captured at plugin init\n- chat.params hook to cache OAuth fetch\n- Modified chat.message hook for preflight flow\n- event hook to cleanup sessionAuthCache on session.deleted\n- Inject matched skill summaries (not full content)","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-11T23:25:00.964213171-06:00","updated_at":"2025-12-11T23:32:22.893089296-06:00","closed_at":"2025-12-11T23:32:22.893089296-06:00","dependencies":[{"issue_id":"opencode-agent-skills-md-w39","depends_on_id":"opencode-agent-skills-md-5rt","type":"blocks","created_at":"2025-12-11T23:25:24.388171337-06:00","created_by":"daemon"}]}
63
- {"id":"opencode-agent-skills-md-yam","title":"Wire up UseSkill callback to register loaded skills","description":"In plugin.ts tool registration, pass callback to UseSkill that adds skill name to session's loaded skills Set.","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T09:35:28.051043987-06:00","updated_at":"2025-12-13T09:42:38.599555025-06:00","closed_at":"2025-12-13T09:42:38.599555025-06:00","dependencies":[{"issue_id":"opencode-agent-skills-md-yam","depends_on_id":"opencode-agent-skills-md-rfb","type":"blocks","created_at":"2025-12-13T09:35:36.341709891-06:00","created_by":"daemon"},{"issue_id":"opencode-agent-skills-md-yam","depends_on_id":"opencode-agent-skills-md-84f","type":"blocks","created_at":"2025-12-13T09:35:36.354898717-06:00","created_by":"daemon"}]}
64
- {"id":"opencode-agent-skills-md-zg5","title":"Strengthen preflight prompt to prevent skill name hallucination","description":"Reframe as selection task, add explicit process steps, strengthen 'only select existing names' rule, add WRONG vs RIGHT examples to prevent LLM from generating plausible-sounding names that don't exist","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-12T01:59:25.754868036-06:00","updated_at":"2025-12-12T02:00:18.373225671-06:00","closed_at":"2025-12-12T02:00:18.373225671-06:00"}
@@ -1,4 +0,0 @@
1
- {
2
- "database": "beads.db",
3
- "jsonl_export": "issues.jsonl"
4
- }
package/.gitattributes DELETED
@@ -1,3 +0,0 @@
1
-
2
- # Use bd merge for beads JSONL files
3
- .beads/issues.jsonl merge=beads
@@ -1 +0,0 @@
1
- * @joshuadavidthomas
@@ -1,78 +0,0 @@
1
- # GitHub Copilot Instructions
2
-
3
- ## Issue Tracking with bd
4
-
5
- This project uses **bd (beads)** for issue tracking - a Git-backed tracker designed for AI-supervised coding workflows.
6
-
7
- **Key Features:**
8
- - Dependency-aware issue tracking
9
- - Auto-sync with Git via JSONL
10
- - AI-optimized CLI with JSON output
11
- - Built-in daemon for background operations
12
- - MCP server integration for Claude and other AI assistants
13
-
14
- **CRITICAL**: Use bd for ALL task tracking. Do NOT create markdown TODO lists.
15
-
16
- ### Essential Commands
17
-
18
- ```bash
19
- # Find work
20
- bd ready --json # Unblocked issues
21
- bd stale --days 30 --json # Forgotten issues
22
-
23
- # Create and manage
24
- bd create "Title" -t bug|feature|task -p 0-4 --json
25
- bd create "Subtask" --parent <epic-id> --json # Hierarchical subtask
26
- bd update <id> --status in_progress --json
27
- bd close <id> --reason "Done" --json
28
-
29
- # Search
30
- bd list --status open --priority 1 --json
31
- bd show <id> --json
32
-
33
- # Sync (CRITICAL at end of session!)
34
- bd sync # Force immediate export/commit/push
35
- ```
36
-
37
- ### Workflow
38
-
39
- 1. **Check ready work**: `bd ready --json`
40
- 2. **Claim task**: `bd update <id> --status in_progress`
41
- 3. **Work on it**: Implement, test, document
42
- 4. **Discover new work?** `bd create \"Found bug\" -p 1 --deps discovered-from:<parent-id> --json`
43
- 5. **Complete**: `bd close <id> --reason \"Done\" --json`
44
- 6. **Sync**: `bd sync` (flushes changes to git immediately)
45
-
46
- ### Priorities
47
-
48
- - `0` - Critical (security, data loss, broken builds)
49
- - `1` - High (major features, important bugs)
50
- - `2` - Medium (default, nice-to-have)
51
- - `3` - Low (polish, optimization)
52
- - `4` - Backlog (future ideas)
53
-
54
- ### Git Workflow
55
-
56
- - Always commit `.beads/issues.jsonl` with code changes
57
- - Run `bd sync` at end of work sessions
58
- - Install git hooks: `bd hooks install` (ensures DB ↔ JSONL consistency)
59
-
60
- ### MCP Server (Recommended)
61
-
62
- For MCP-compatible clients (Claude Desktop, etc.), install the beads MCP server:
63
- - Install: `pip install beads-mcp`
64
- - Functions: `mcp__beads__ready()`, `mcp__beads__create()`, etc.
65
-
66
- ## CLI Help
67
-
68
- Run `bd <command> --help` to see all available flags for any command.
69
- For example: `bd create --help` shows `--parent`, `--deps`, `--assignee`, etc.
70
-
71
- ## Important Rules
72
-
73
- - ✅ Use bd for ALL task tracking
74
- - ✅ Always use `--json` flag for programmatic use
75
- - ✅ Run `bd sync` at end of sessions
76
- - ✅ Run `bd <cmd> --help` to discover available flags
77
- - ❌ Do NOT create markdown TODO lists
78
- - ❌ Do NOT commit `.beads/beads.db` (JSONL only)
@@ -1,13 +0,0 @@
1
- version: 2
2
- updates:
3
- - package-ecosystem: github-actions
4
- directory: "/"
5
- schedule:
6
- interval: weekly
7
- timezone: America/Chicago
8
- labels:
9
- - 🤖 dependabot
10
- groups:
11
- gha:
12
- patterns:
13
- - "*"
@@ -1,51 +0,0 @@
1
- name: release
2
-
3
- on:
4
- release:
5
- types: [published]
6
-
7
- jobs:
8
- publish:
9
- runs-on: ubuntu-latest
10
- environment: release
11
- permissions:
12
- contents: write
13
- id-token: write
14
- attestations: write
15
- steps:
16
- - uses: actions/checkout@v6
17
-
18
- - name: Setup pnpm
19
- uses: pnpm/action-setup@v4
20
- with:
21
- version: 10
22
-
23
- - name: Setup Node.js
24
- uses: actions/setup-node@v6
25
- with:
26
- node-version: "22"
27
- registry-url: "https://registry.npmjs.org"
28
- cache: pnpm
29
-
30
- - name: Install dependencies
31
- run: pnpm install --frozen-lockfile
32
-
33
- - name: Typecheck
34
- run: pnpm run typecheck
35
-
36
- - name: Build package
37
- run: pnpm pack
38
-
39
- - name: Generate artifact attestation
40
- uses: actions/attest-build-provenance@v4
41
- with:
42
- subject-path: "./*.tgz"
43
-
44
- - name: Upload release assets to GitHub
45
- env:
46
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
47
- run: |
48
- gh release upload ${{ github.event.release.tag_name }} ./*.tgz
49
-
50
- - name: Publish to npm
51
- run: npm publish
@@ -1,9 +0,0 @@
1
- ---
2
- description: Verify skills list was re-injected after compaction
3
- ---
4
-
5
- Run this after manually triggering compaction to verify the skills plugin re-injected the available skills list.
6
-
7
- 1. Use `find_skills` to confirm skills are still discoverable
8
- 2. Use `use_skill` to load `test-skill` to confirm the tool still works
9
- 3. Report whether the `<available-skills>` block is visible in context
@@ -1,7 +0,0 @@
1
- ---
2
- description: Test the find_skills tool
3
- ---
4
-
5
- Use `find_skills` to list all available skills. Then try filtering with a query like `find_skills` with query "test".
6
-
7
- Report what skills were found and verify the output format shows name, source label, and description.
@@ -1,14 +0,0 @@
1
- ---
2
- description: Test the read_skill_file tool
3
- ---
4
-
5
- Test `read_skill_file` with different file types from `test-skill`:
6
-
7
- 1. Load `helper-docs.md` - a markdown documentation file
8
- 2. Load `example-config.json` - a JSON configuration file
9
-
10
- Verify that:
11
- 1. Both files are injected with XML structure (`<skill-file>`, `<metadata>`, `<content>` tags)
12
- 2. The metadata includes the skill directory path
13
- 3. The tool returns a confirmation message for each file
14
- 4. Try loading a non-existent file and verify it lists available files in the error
@@ -1,13 +0,0 @@
1
- ---
2
- description: Test the run_skill_script tool
3
- ---
4
-
5
- Test `run_skill_script` with scripts from `test-skill`:
6
-
7
- 1. Run the `greet` script with no arguments
8
- 2. Run the `echo-args` script with arguments: `foo`, `bar`, `--baz`
9
-
10
- Verify that:
11
- 1. The `greet` script outputs "Hello from test-skill!" and shows the CWD is the skill directory
12
- 2. The `echo-args` script correctly echoes back all arguments passed
13
- 3. Try running a non-existent script and verify it lists available scripts in the error
@@ -1,14 +0,0 @@
1
- ---
2
- description: Run a full test of all skills plugin tools
3
- ---
4
-
5
- Test all 4 skills plugin tools in sequence:
6
-
7
- 1. First, use `find_skills` to list all available skills
8
- 2. Then use `use_skill` to load the `test-skill` skill
9
- 3. Use `read_skill_file` to load `helper-docs.md` from `test-skill`
10
- 4. Use `read_skill_file` to load `example-config.json` from `test-skill`
11
- 5. Use `run_skill_script` to run the `greet` script from `test-skill`
12
- 6. Use `run_skill_script` to run the `echo-args` script from `test-skill` with arguments: `hello world --test`
13
-
14
- Report the results of each step, noting any errors or unexpected behavior.
@@ -1,10 +0,0 @@
1
- ---
2
- description: Test the use_skill tool
3
- ---
4
-
5
- Use `use_skill` to load the `test-skill` skill.
6
-
7
- Verify that:
8
- 1. The skill content is injected with XML structure (`<skill>`, `<metadata>`, `<content>` tags)
9
- 2. The metadata includes source, directory, and scripts (if any)
10
- 3. The tool returns a confirmation message with available scripts listed
@@ -1,65 +0,0 @@
1
- ---
2
- name: git-helper
3
- description: Provides git workflow assistance, branch management, and commit message optimization
4
- ---
5
-
6
- # Git Helper
7
-
8
- A comprehensive skill for git workflow management and best practices.
9
-
10
- ## Quick Start
11
-
12
- Use this skill when you need help with:
13
- - Branch creation and management
14
- - Commit message formatting
15
- - Git workflow optimization
16
- - Repository maintenance
17
-
18
- ## Common Workflows
19
-
20
- ### Creating a New Feature Branch
21
- ```bash
22
- git checkout -b feature/your-feature-name
23
- git push -u origin feature/your-feature-name
24
- ```
25
-
26
- ### Writing Good Commit Messages
27
-
28
- Follow the conventional commit format:
29
-
30
- ```
31
- type(scope): description
32
-
33
- [optional body]
34
-
35
- [optional footer]
36
- ```
37
-
38
- Types: feat, fix, docs, style, refactor, test, chore
39
-
40
- ### Git Cleanup Commands
41
-
42
- # Remove stale branches
43
- ```bash
44
- git remote prune origin
45
- ```
46
-
47
- # Clean up local branches
48
- ```bash
49
- git branch -d branch-name
50
- ```
51
-
52
- ## Scripts
53
-
54
- This skill includes helper scripts:
55
-
56
- • `create-branch.sh` - Creates new feature branches with proper naming
57
- • `commit-check.sh` - Validates commit message format
58
- • `cleanup.sh` - Removes stale branches
59
-
60
- ## Best Practices
61
-
62
- 1. Always pull latest changes before creating branches
63
- 2. Use descriptive branch names with prefixes (feature/, bugfix/, hotfix/)
64
- 3. Write atomic commits (one logical change per commit)
65
- 4. Keep commit messages under 72 characters for the subject line