opencodekit 0.21.10 → 0.23.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 (213) hide show
  1. package/README.md +1 -1
  2. package/dist/index.js +4 -25
  3. package/dist/template/.opencode/.template-manifest.json +115 -188
  4. package/dist/template/.opencode/AGENTS.md +127 -484
  5. package/dist/template/.opencode/README.md +2 -2
  6. package/dist/template/.opencode/agent/build.md +158 -356
  7. package/dist/template/.opencode/agent/explore.md +0 -1
  8. package/dist/template/.opencode/agent/plan.md +7 -16
  9. package/dist/template/.opencode/agent/review.md +0 -1
  10. package/dist/template/.opencode/agent/scout.md +2 -3
  11. package/dist/template/.opencode/agent/vision.md +0 -1
  12. package/dist/template/.opencode/artifacts/.active +1 -0
  13. package/dist/template/.opencode/artifacts/example/plan.md +12 -0
  14. package/dist/template/.opencode/artifacts/example/progress.md +4 -0
  15. package/dist/template/.opencode/artifacts/example/research.md +4 -0
  16. package/dist/template/.opencode/artifacts/example/spec.md +16 -0
  17. package/dist/template/.opencode/artifacts/todo.md +5 -0
  18. package/dist/template/.opencode/artifacts/verify.log +4 -0
  19. package/dist/template/.opencode/command/clarify.md +46 -0
  20. package/dist/template/.opencode/command/commit.md +53 -0
  21. package/dist/template/.opencode/command/create.md +29 -71
  22. package/dist/template/.opencode/command/design.md +1 -2
  23. package/dist/template/.opencode/command/explore.md +3 -4
  24. package/dist/template/.opencode/command/fix.md +55 -0
  25. package/dist/template/.opencode/command/improve-architecture.md +55 -0
  26. package/dist/template/.opencode/command/init.md +86 -69
  27. package/dist/template/.opencode/command/plan.md +30 -60
  28. package/dist/template/.opencode/command/pr.md +10 -28
  29. package/dist/template/.opencode/command/refactor.md +65 -0
  30. package/dist/template/.opencode/command/research.md +7 -29
  31. package/dist/template/.opencode/command/review-codebase.md +6 -13
  32. package/dist/template/.opencode/command/ship.md +136 -78
  33. package/dist/template/.opencode/command/test.md +66 -0
  34. package/dist/template/.opencode/command/ui-review.md +2 -4
  35. package/dist/template/.opencode/command/verify.md +15 -23
  36. package/dist/template/.opencode/dcp.jsonc +96 -85
  37. package/dist/template/.opencode/memory/README.md +4 -6
  38. package/dist/template/.opencode/memory/_templates/adr.md +45 -0
  39. package/dist/template/.opencode/memory/_templates/prd.md +1 -1
  40. package/dist/template/.opencode/memory/_templates/roadmap.md +1 -1
  41. package/dist/template/.opencode/memory/_templates/state.md +1 -1
  42. package/dist/template/.opencode/memory/project/gotchas.md +4 -4
  43. package/dist/template/.opencode/memory/project/project.md +2 -2
  44. package/dist/template/.opencode/memory/project/roadmap.md +1 -1
  45. package/dist/template/.opencode/memory/project/state.md +2 -2
  46. package/dist/template/.opencode/memory/project/tech-stack.md +2 -2
  47. package/dist/template/.opencode/memory/session-context.md +1 -1
  48. package/dist/template/.opencode/opencode.json +14 -152
  49. package/dist/template/.opencode/plugin/README.md +2 -2
  50. package/dist/template/.opencode/plugin/guard.ts +62 -0
  51. package/dist/template/.opencode/plugin/{lib/memory-admin-tools.ts → memory/admin.ts} +4 -4
  52. package/dist/template/.opencode/plugin/{lib → memory}/capture.ts +1 -1
  53. package/dist/template/.opencode/plugin/{lib → memory}/compile.ts +2 -2
  54. package/dist/template/.opencode/plugin/{lib → memory}/context.ts +1 -1
  55. package/dist/template/.opencode/plugin/{lib → memory}/curator.ts +1 -1
  56. package/dist/template/.opencode/plugin/{lib → memory}/db/observations.ts +102 -3
  57. package/dist/template/.opencode/plugin/{lib → memory}/db/schema.ts +43 -1
  58. package/dist/template/.opencode/plugin/{lib → memory}/db/types.ts +22 -0
  59. package/dist/template/.opencode/plugin/{lib/memory-db.ts → memory/db.ts} +1 -1
  60. package/dist/template/.opencode/plugin/{lib → memory}/distill.ts +1 -1
  61. package/dist/template/.opencode/plugin/{lib/memory-helpers.ts → memory/helpers.ts} +5 -1
  62. package/dist/template/.opencode/plugin/{lib/memory-hooks.ts → memory/hooks.ts} +1 -1
  63. package/dist/template/.opencode/plugin/{lib → memory}/index-generator.ts +2 -2
  64. package/dist/template/.opencode/plugin/{lib → memory}/inject.ts +1 -1
  65. package/dist/template/.opencode/plugin/{lib → memory}/lint.ts +2 -2
  66. package/dist/template/.opencode/plugin/memory/tools.ts +322 -0
  67. package/dist/template/.opencode/plugin/{lib → memory}/validate.ts +2 -2
  68. package/dist/template/.opencode/plugin/memory.ts +7 -17
  69. package/dist/template/.opencode/plugin/srcwalk.ts +721 -0
  70. package/dist/template/.opencode/skill/agent-code-quality-gate/SKILL.md +98 -0
  71. package/dist/template/.opencode/skill/behavioral-kernel/SKILL.md +52 -0
  72. package/dist/template/.opencode/skill/brainstorming/SKILL.md +1 -1
  73. package/dist/template/.opencode/skill/browser-testing-with-devtools/SKILL.md +85 -0
  74. package/dist/template/.opencode/skill/code-cleanup/SKILL.md +114 -0
  75. package/dist/template/.opencode/skill/code-navigation/SKILL.md +142 -0
  76. package/dist/template/.opencode/skill/code-review-and-quality/SKILL.md +131 -0
  77. package/dist/template/.opencode/skill/context-engineering/SKILL.md +1 -1
  78. package/dist/template/.opencode/skill/debugging-and-error-recovery/SKILL.md +109 -0
  79. package/dist/template/.opencode/skill/deep-module-design/SKILL.md +207 -0
  80. package/dist/template/.opencode/skill/development-lifecycle/SKILL.md +26 -45
  81. package/dist/template/.opencode/skill/gemini-large-context/SKILL.md +4 -4
  82. package/dist/template/.opencode/skill/git-workflow-and-versioning/SKILL.md +77 -0
  83. package/dist/template/.opencode/skill/grill-me/SKILL.md +140 -0
  84. package/dist/template/.opencode/skill/memory-system/SKILL.md +9 -10
  85. package/dist/template/.opencode/skill/opensrc/references/example-workflow.md +1 -1
  86. package/dist/template/.opencode/skill/planning-and-task-breakdown/SKILL.md +116 -0
  87. package/dist/template/.opencode/skill/shipping-and-launch/SKILL.md +95 -0
  88. package/dist/template/.opencode/skill/source-driven-development/SKILL.md +103 -0
  89. package/dist/template/.opencode/skill/spec-driven-development/SKILL.md +121 -0
  90. package/dist/template/.opencode/skill/srcwalk/SKILL.md +161 -0
  91. package/dist/template/.opencode/skill/subagent-driven-development/SKILL.md +1 -1
  92. package/dist/template/.opencode/skill/ubiquitous-language/SKILL.md +184 -0
  93. package/dist/template/.opencode/skill/using-git-worktrees/SKILL.md +6 -6
  94. package/dist/template/.opencode/skill/verification-before-completion/SKILL.md +6 -6
  95. package/dist/template/.opencode/skill/verification-before-completion/references/VERIFICATION_PROTOCOL.md +5 -5
  96. package/package.json +76 -76
  97. package/dist/template/.opencode/AGENT_ALIGNMENT.md +0 -564
  98. package/dist/template/.opencode/agent/painter.md +0 -83
  99. package/dist/template/.opencode/command/compound.md +0 -240
  100. package/dist/template/.opencode/command/curate.md +0 -299
  101. package/dist/template/.opencode/command/handoff.md +0 -149
  102. package/dist/template/.opencode/command/health.md +0 -356
  103. package/dist/template/.opencode/command/init-context.md +0 -297
  104. package/dist/template/.opencode/command/init-user.md +0 -125
  105. package/dist/template/.opencode/command/iterate.md +0 -200
  106. package/dist/template/.opencode/command/lfg.md +0 -173
  107. package/dist/template/.opencode/command/resume.md +0 -78
  108. package/dist/template/.opencode/command/status.md +0 -126
  109. package/dist/template/.opencode/command/ui-slop-check.md +0 -169
  110. package/dist/template/.opencode/plans/1768385996691-silent-wizard.md +0 -247
  111. package/dist/template/.opencode/plans/1770006237537-mighty-otter.md +0 -418
  112. package/dist/template/.opencode/plans/1770006913647-glowing-forest.md +0 -170
  113. package/dist/template/.opencode/plans/1770013678126-witty-planet.md +0 -278
  114. package/dist/template/.opencode/plans/1770112267595-shiny-rocket.md +0 -258
  115. package/dist/template/.opencode/plans/swarm-protocol.md +0 -123
  116. package/dist/template/.opencode/plugin/lib/memory-tools.ts +0 -535
  117. package/dist/template/.opencode/skill/agent-evals/SKILL.md +0 -208
  118. package/dist/template/.opencode/skill/anti-ai-slop/SKILL.md +0 -76
  119. package/dist/template/.opencode/skill/augment-context-engine/SKILL.md +0 -122
  120. package/dist/template/.opencode/skill/augment-context-engine/mcp.json +0 -6
  121. package/dist/template/.opencode/skill/beads/SKILL.md +0 -182
  122. package/dist/template/.opencode/skill/beads/references/BEST_PRACTICES.md +0 -27
  123. package/dist/template/.opencode/skill/beads/references/BOUNDARIES.md +0 -219
  124. package/dist/template/.opencode/skill/beads/references/DEPENDENCIES.md +0 -124
  125. package/dist/template/.opencode/skill/beads/references/EXAMPLES.md +0 -45
  126. package/dist/template/.opencode/skill/beads/references/FILE_CLAIMING.md +0 -101
  127. package/dist/template/.opencode/skill/beads/references/GIT_SYNC.md +0 -25
  128. package/dist/template/.opencode/skill/beads/references/HIERARCHY.md +0 -71
  129. package/dist/template/.opencode/skill/beads/references/MULTI_AGENT.md +0 -40
  130. package/dist/template/.opencode/skill/beads/references/RESUMABILITY.md +0 -177
  131. package/dist/template/.opencode/skill/beads/references/SESSION_PROTOCOL.md +0 -61
  132. package/dist/template/.opencode/skill/beads/references/TASK_CREATION.md +0 -38
  133. package/dist/template/.opencode/skill/beads/references/TROUBLESHOOTING.md +0 -38
  134. package/dist/template/.opencode/skill/beads/references/WORKFLOWS.md +0 -226
  135. package/dist/template/.opencode/skill/brand-asset-protocol/SKILL.md +0 -222
  136. package/dist/template/.opencode/skill/code-search-patterns/SKILL.md +0 -224
  137. package/dist/template/.opencode/skill/code-simplification/SKILL.md +0 -211
  138. package/dist/template/.opencode/skill/context-condensation/SKILL.md +0 -149
  139. package/dist/template/.opencode/skill/context-initialization/SKILL.md +0 -69
  140. package/dist/template/.opencode/skill/context-management/SKILL.md +0 -390
  141. package/dist/template/.opencode/skill/deep-research/SKILL.md +0 -384
  142. package/dist/template/.opencode/skill/design-direction-advisor/SKILL.md +0 -139
  143. package/dist/template/.opencode/skill/dispatching-parallel-agents/SKILL.md +0 -191
  144. package/dist/template/.opencode/skill/executing-plans/SKILL.md +0 -247
  145. package/dist/template/.opencode/skill/figma-go/SKILL.md +0 -65
  146. package/dist/template/.opencode/skill/finishing-a-development-branch/SKILL.md +0 -357
  147. package/dist/template/.opencode/skill/full-output-enforcement/SKILL.md +0 -62
  148. package/dist/template/.opencode/skill/gh-address-comments/SKILL.md +0 -29
  149. package/dist/template/.opencode/skill/gh-address-comments/scripts/fetch_comments.py +0 -237
  150. package/dist/template/.opencode/skill/gh-fix-ci/SKILL.md +0 -38
  151. package/dist/template/.opencode/skill/gh-fix-ci/scripts/inspect_pr_checks.py +0 -509
  152. package/dist/template/.opencode/skill/hi-fi-prototype-html/SKILL.md +0 -253
  153. package/dist/template/.opencode/skill/html-deck-export/SKILL.md +0 -189
  154. package/dist/template/.opencode/skill/index-knowledge/SKILL.md +0 -413
  155. package/dist/template/.opencode/skill/memory-grounding/SKILL.md +0 -68
  156. package/dist/template/.opencode/skill/playwriter/SKILL.md +0 -158
  157. package/dist/template/.opencode/skill/portless/SKILL.md +0 -109
  158. package/dist/template/.opencode/skill/prd/SKILL.md +0 -146
  159. package/dist/template/.opencode/skill/prd-task/SKILL.md +0 -182
  160. package/dist/template/.opencode/skill/prd-task/references/prd-schema.json +0 -124
  161. package/dist/template/.opencode/skill/prompt-leverage/SKILL.md +0 -90
  162. package/dist/template/.opencode/skill/prompt-leverage/references/framework.md +0 -91
  163. package/dist/template/.opencode/skill/prompt-leverage/scripts/augment_prompt.py +0 -157
  164. package/dist/template/.opencode/skill/receiving-code-review/SKILL.md +0 -263
  165. package/dist/template/.opencode/skill/reconcile/SKILL.md +0 -183
  166. package/dist/template/.opencode/skill/reflection-checkpoints/SKILL.md +0 -183
  167. package/dist/template/.opencode/skill/requesting-code-review/SKILL.md +0 -443
  168. package/dist/template/.opencode/skill/requesting-code-review/references/specialist-profiles.md +0 -108
  169. package/dist/template/.opencode/skill/requesting-code-review/review.md +0 -160
  170. package/dist/template/.opencode/skill/rtk-command-compression/SKILL.md +0 -134
  171. package/dist/template/.opencode/skill/screenshot/SKILL.md +0 -48
  172. package/dist/template/.opencode/skill/screenshot/scripts/ensure_macos_permissions.sh +0 -54
  173. package/dist/template/.opencode/skill/screenshot/scripts/macos_display_info.swift +0 -22
  174. package/dist/template/.opencode/skill/screenshot/scripts/macos_permissions.swift +0 -40
  175. package/dist/template/.opencode/skill/screenshot/scripts/macos_window_info.swift +0 -126
  176. package/dist/template/.opencode/skill/screenshot/scripts/take_screenshot.ps1 +0 -163
  177. package/dist/template/.opencode/skill/screenshot/scripts/take_screenshot.py +0 -585
  178. package/dist/template/.opencode/skill/security-threat-model/SKILL.md +0 -36
  179. package/dist/template/.opencode/skill/security-threat-model/references/prompt-template.md +0 -255
  180. package/dist/template/.opencode/skill/security-threat-model/references/security-controls-and-assets.md +0 -32
  181. package/dist/template/.opencode/skill/sharing-skills/SKILL.md +0 -214
  182. package/dist/template/.opencode/skill/skill-creator/SKILL.md +0 -181
  183. package/dist/template/.opencode/skill/skill-installer/SKILL.md +0 -58
  184. package/dist/template/.opencode/skill/skill-installer/scripts/github_utils.py +0 -21
  185. package/dist/template/.opencode/skill/skill-installer/scripts/install-skill-from-github.py +0 -313
  186. package/dist/template/.opencode/skill/skill-installer/scripts/list-skills.py +0 -106
  187. package/dist/template/.opencode/skill/swarm-coordination/SKILL.md +0 -244
  188. package/dist/template/.opencode/skill/swarm-coordination/references/architecture.md +0 -39
  189. package/dist/template/.opencode/skill/swarm-coordination/references/delegation-worker-protocol.md +0 -145
  190. package/dist/template/.opencode/skill/swarm-coordination/references/dependency-graph.md +0 -50
  191. package/dist/template/.opencode/skill/swarm-coordination/references/drift-check.md +0 -90
  192. package/dist/template/.opencode/skill/swarm-coordination/references/integration-beads.md +0 -20
  193. package/dist/template/.opencode/skill/swarm-coordination/references/launch-flow.md +0 -186
  194. package/dist/template/.opencode/skill/swarm-coordination/references/reconciler.md +0 -172
  195. package/dist/template/.opencode/skill/swarm-coordination/references/tier-enforcement.md +0 -78
  196. package/dist/template/.opencode/skill/swarm-coordination/references/tmux-integration.md +0 -134
  197. package/dist/template/.opencode/skill/systematic-debugging/SKILL.md +0 -402
  198. package/dist/template/.opencode/skill/terse-output-mode/SKILL.md +0 -95
  199. package/dist/template/.opencode/skill/think-in-code/SKILL.md +0 -136
  200. package/dist/template/.opencode/skill/ux-quality-gates/SKILL.md +0 -137
  201. package/dist/template/.opencode/skill/v1-run/SKILL.md +0 -175
  202. package/dist/template/.opencode/skill/v1-run/mcp.json +0 -6
  203. package/dist/template/.opencode/skill/verification-gates/SKILL.md +0 -63
  204. package/dist/template/.opencode/skill/visual-analysis/SKILL.md +0 -154
  205. package/dist/template/.opencode/skill/web-design-guidelines/SKILL.md +0 -46
  206. package/dist/template/.opencode/skill/workspace-setup/SKILL.md +0 -76
  207. package/dist/template/.opencode/skill/writing-plans/SKILL.md +0 -320
  208. /package/dist/template/.opencode/plugin/{lib → memory}/compact.ts +0 -0
  209. /package/dist/template/.opencode/plugin/{lib → memory}/db/graph.ts +0 -0
  210. /package/dist/template/.opencode/plugin/{lib → memory}/db/maintenance.ts +0 -0
  211. /package/dist/template/.opencode/plugin/{lib → memory}/db/pipeline.ts +0 -0
  212. /package/dist/template/.opencode/plugin/{lib → memory}/notify.ts +0 -0
  213. /package/dist/template/.opencode/plugin/{lib → memory}/operation-log.ts +0 -0
@@ -0,0 +1,161 @@
1
+ ---
2
+ name: srcwalk
3
+ compatible_srcwalk: ">=1.0.0"
4
+ description: Use when navigating code with srcwalk — repo maps, large-file reads, symbol search, callers/callees, flow slices, impact checks, and precise drill-ins.
5
+ version: 2.1.0
6
+ tags: [code-intelligence, search, cli, srcwalk]
7
+ dependencies: []
8
+ agent_types: [planner, worker, reviewer, explorer]
9
+ tools: [bash, srcwalk_search, srcwalk_read, srcwalk_files, srcwalk_deps, srcwalk_map, srcwalk_callers, srcwalk_callees, srcwalk_flow, srcwalk_impact]
10
+ ---
11
+
12
+ # Srcwalk — Code Navigation
13
+
14
+ Srcwalk is the project's code navigation engine (v1.0.0+). All Pi tools are backed by the installed `srcwalk` binary.
15
+
16
+ Run the embedded guide before non-trivial use — it is the version-matched source of truth:
17
+
18
+ ```bash
19
+ srcwalk guide
20
+ ```
21
+
22
+ Do not pipe, truncate, or summarize `srcwalk guide`.
23
+
24
+ ## When to Use
25
+
26
+ - Any code navigation task: symbol search, large-file reading, repo maps
27
+ - Tracing call graphs (callers, callees, transitive chains)
28
+ - Checking blast radius before breaking changes
29
+ - Understanding repo shape and token budgets
30
+ - Quick function orientation (flow slice)
31
+ - Heuristic impact triage
32
+
33
+ ## When NOT to Use
34
+
35
+ - Non-code files where tree-sitter has no grammar → use `read` directly
36
+ - Simple one-off reads of small known files → use built-in `read`
37
+
38
+ ## Pi Tool Surface
39
+
40
+ ### Core navigation tools
41
+
42
+ | Tool | Srcwalk command | Purpose |
43
+ |---|---|---|
44
+ | `srcwalk_search` | `srcwalk discover` / `srcwalk trace callers` | AST-aware symbol/content/regex/callers search |
45
+ | `srcwalk_read` | `srcwalk <path>` | Smart file reading: outline or full with sections |
46
+ | `srcwalk_files` | `srcwalk discover --as file` | Glob file finding with token estimates, grouped by dir |
47
+ | `srcwalk_deps` | `srcwalk deps` + exact import scan | Blast-radius: importers + dep-aware dependents (v1.0.0) |
48
+
49
+ ### Extended analysis tools
50
+
51
+ | Tool | Srcwalk command | Purpose |
52
+ |---|---|---|
53
+ | `srcwalk_map` | `srcwalk overview` | Token-annotated directory skeleton + dep groups (v1.0.0) |
54
+ | `srcwalk_callers` | `srcwalk trace callers` | Reverse call graph with BFS depth + filters |
55
+ | `srcwalk_callees` | `srcwalk trace callees` | Forward call graph with `--detailed` ordered call sites |
56
+ | `srcwalk_flow` | `srcwalk context` | Compact orientation slice |
57
+ | `srcwalk_impact` | `srcwalk assess` | Heuristic blast-radius triage |
58
+
59
+ ## Command Routing
60
+
61
+ | Intent | Use first |
62
+ |---|---|
63
+ | Understand repo shape | `srcwalk_map` |
64
+ | Read or inspect a large file | `srcwalk_read` |
65
+ | Jump to exact line | `srcwalk_read({ path: "file:42" })` |
66
+ | Read a line range | `srcwalk_read({ path: "file:44-89" })` — v1.0.0 shortcut |
67
+ | Read by symbol name | `srcwalk_read({ section: "symbolName" })` |
68
+ | Find definition/usages/text/glob | `srcwalk_search` |
69
+ | Find files by glob | `srcwalk_files` |
70
+ | Multi-symbol search | `srcwalk_search({ query: "A, B, C" })` |
71
+ | Who directly calls this? | `srcwalk_callers` |
72
+ | Who reaches this transitively? | `srcwalk_callers({ depth: 2 })` |
73
+ | What does this call? | `srcwalk_callees` |
74
+ | Ordered calls + arg slots | `srcwalk_callees({ detailed: true })` |
75
+ | Quick orientation slice | `srcwalk_flow` |
76
+ | File imports and dependents | `srcwalk_deps` |
77
+ | Heuristic blast-radius | `srcwalk_impact` (verify with callers) |
78
+
79
+ ## Default Workflows
80
+
81
+ ### Explore unfamiliar code
82
+
83
+ ```
84
+ srcwalk_map({ scope: "." })
85
+ srcwalk_search({ query: "likely_symbol", scope: "src" })
86
+ srcwalk_read({ path: "src/file.ts:42" }) // jump to line
87
+ srcwalk_read({ path: "src/file.ts:44-89" }) // range shortcut (v1.0.0)
88
+ ```
89
+
90
+ ### Read a large file
91
+
92
+ ```
93
+ srcwalk_read({ path: "src/file.ts" }) // structural outline
94
+ srcwalk_read({ path: "src/file.ts", section: "handleAuth" }) // drill into symbol
95
+ srcwalk_read({ path: "src/file.ts", section: "44-89" }) // exact range
96
+ ```
97
+
98
+ Prefer outline/section reads before `full: true`.
99
+
100
+ ### Find and drill into symbols
101
+
102
+ ```
103
+ srcwalk_search({ query: "handleAuth", scope: "src" })
104
+ srcwalk_search({ query: "A, B, C", scope: "src" }) // multi-symbol
105
+ srcwalk_search({ query: "handleAuth", expand: 2 }) // inline source
106
+ ```
107
+
108
+ ### Trace call graph
109
+
110
+ ```
111
+ // upstream
112
+ srcwalk_callers({ symbol: "handleAuth", scope: "src" })
113
+ srcwalk_callers({ symbol: "handleAuth", depth: 2, scope: "src" }) // transitive
114
+ srcwalk_callers({ symbol: "handleAuth", filter: "args:3", scope: "src" })
115
+ srcwalk_callers({ symbol: "handleAuth", countBy: "file", scope: "src" })
116
+
117
+ // downstream
118
+ srcwalk_callees({ symbol: "handleAuth", scope: "src" })
119
+ srcwalk_callees({ symbol: "handleAuth", detailed: true, scope: "src" }) // ordered sites
120
+ srcwalk_callees({ symbol: "handleAuth", depth: 2, scope: "src" }) // transitive
121
+
122
+ // quick orientation
123
+ srcwalk_flow({ symbol: "handleAuth", scope: "src" })
124
+ ```
125
+
126
+ Use `srcwalk_search({ kind: "callers" })` for quick single-hop. Use `srcwalk_callers` when you need depth, filters, or aggregation.
127
+
128
+ > Note: `--count-by` and `--depth` are mutually exclusive in `srcwalk_callers` — use one or the other, not both.
129
+
130
+ ### Check file blast radius
131
+
132
+ ```
133
+ srcwalk_deps({ path: "src/auth.ts" })
134
+ srcwalk_impact({ symbol: "handleAuth", scope: "src" }) // heuristic; follow up with callers
135
+ ```
136
+
137
+ ## v1.0.0 Features
138
+
139
+ - **Path range shortcut**: `srcwalk_read({ path: "file:start-end" })` reads a line range directly — no need to pass `section` separately
140
+ - **Dependency-aware map**: `srcwalk_map` now shows local relation groups and outbound dependency previews for narrowed scopes
141
+ - **JS/TS artifact navigation**: bundle anchors, artifact reads, artifact search snippets, and artifact caller/callee support
142
+ - **Improved UX**: more compact semantic rows, directory grouping, footer tips, and clearer scope/depth wording across all commands
143
+
144
+ ## Critical Rules
145
+
146
+ - **Do NOT** use built-in `read`/`grep`/`find` when srcwalk_* tools can answer
147
+ - **Do NOT** re-read files already shown in expanded `srcwalk_search` results
148
+ - `srcwalk_impact` is heuristic, not proof — verify with `srcwalk_callers` or exact reads
149
+ - `srcwalk_flow` may collapse nested/fluent chains — drill with `srcwalk_callees({ detailed: true })` when inner calls matter
150
+ - Follow `> Next:` footers in output — they suggest the best next command
151
+ - Scope paths are **relative to Pi's CWD** (`.pi/` in this project). Use `scope: "extensions"` not `scope: ".pi/extensions"`
152
+
153
+ ## Supported Languages
154
+
155
+ Rust, TypeScript, TSX, JavaScript, Python, Go, Java, Scala, C, C++, Ruby, PHP, C#, Swift, Elixir, Kotlin. Unsupported files still get smart text/outline reads.
156
+
157
+ ## Setup
158
+
159
+ The srcwalk plugin is auto-discovered from `.opencode/plugin/srcwalk.ts`. No registration needed.
160
+
161
+ All scope paths are relative to the **project root directory**. The default scope resolves from the project root.
@@ -35,7 +35,7 @@ dependencies: [executing-plans]
35
35
 
36
36
  Read plan file, create TodoWrite with all tasks.
37
37
 
38
- **Context file pattern:** If the plan exceeds ~500 tokens, write it to `.beads/artifacts/<id>/plan-context.md` and reference by path in subagent prompts instead of inlining. This saves tokens when dispatching multiple subagents from the same plan.
38
+ **Context file pattern:** If the plan exceeds ~500 tokens, write it to `.opencode/artifacts/plan-context.md` and reference by path in subagent prompts instead of inlining. This saves tokens when dispatching multiple subagents from the same plan.
39
39
 
40
40
  ### 2. Execute Task with Subagent
41
41
 
@@ -0,0 +1,184 @@
1
+ ---
2
+ name: ubiquitous-language
3
+ description: Establishes and maintains shared vocabulary across codebase, context files, and team conversation — inspired by Evans' Domain-Driven Design and Pocock's AI agent glossary technique. Use when terms are ambiguous, the AI does the wrong thing, or you need to align code with domain concepts.
4
+ version: 1.0.0
5
+ tags: [architecture, domain-driven-design, ai-workflow]
6
+ dependencies: []
7
+ agent_types: [planner, scout]
8
+ tools: [srcwalk_search, grep, memory]
9
+ ---
10
+
11
+ # Ubiquitous Language
12
+
13
+ > Based on Eric Evans' *Domain-Driven Design* and Matt Pocock's AI-agent glossary technique
14
+
15
+ ## Overview
16
+
17
+ A ubiquitous language is a **shared vocabulary** that is used consistently across:
18
+
19
+ - **Code** — types, classes, functions, modules, files
20
+ - **Conversation** — how developers and domain experts talk about the system
21
+ - **AI context** — AGENTS.md, CLAUDE.md, and other files that guide AI agents
22
+ - **Specs and docs** — PRDs, design docs, specifications
23
+
24
+ When these four use the same words for the same concepts, communication is precise, AI agents produce correct code more often, and the "wrong thing" failure mode is dramatically reduced.
25
+
26
+ When they diverge, every translation gap is a bug waiting to happen.
27
+
28
+ > *"Conversations among developers and expressions of the code are all derived from the same domain model."* — Eric Evans
29
+
30
+ **Why this matters for AI agents:** Matt Pocock demonstrated that feeding a structured glossary (extracted from the codebase) as persistent context to an LLM reduces verbose reasoning and aligns implementation more closely with intent. Ubiquitous language isn't a documentation luxury — it's a direct input into AI correctness.
31
+
32
+ ## When to Use
33
+
34
+ - Terms are used interchangeably that shouldn't be ("User" vs "Account" vs "Profile")
35
+ - AI agents consistently implement the wrong concept
36
+ - Specs use different vocabulary than the codebase
37
+ - Starting a new domain module that needs clear boundaries
38
+ - Onboarding new developers or agents who need to learn the vocabulary
39
+ - The codebase has multiple ways to refer to the same domain concept
40
+
41
+ ## When NOT to Use
42
+
43
+ - Trivial utilities with no domain concept at stake
44
+ - Short-lived spike code
45
+ - Already consistent codebases with clear terminology (maintain, don't re-engineer)
46
+
47
+ ## Core Principle
48
+
49
+ > **Every concept in the domain should have exactly one name in the codebase.**
50
+
51
+ If two terms mean the same thing, consolidate. If one term means two different things, split them into separate concepts with separate names.
52
+
53
+ ## Technique 1: Glossary Extraction
54
+
55
+ ### From Codebase
56
+
57
+ Scan the codebase for key terms and build a glossary:
58
+
59
+ ```
60
+ src/
61
+ types/ → Extract type/interface names
62
+ models/ → Extract model/entity names
63
+ routes/ → Extract resource names from URL patterns
64
+ services/ → Extract domain operation names
65
+ commands/ → Extract command/mutation names
66
+ ```
67
+
68
+ **Automated approach:**
69
+ ```bash
70
+ # Extract type definitions (TypeScript example)
71
+ grep -rn "^export (type|interface|class|enum) " src/ --include='*.ts' |
72
+ cut -d' ' -f3- | sort -u
73
+
74
+ # Extract module/file names that correspond to domain concepts
75
+ ls -d src/models/*/ | xargs -I{} basename {} | sort -u
76
+ ```
77
+
78
+ ### From AGENTS.md / Context Files
79
+
80
+ Every term used in your AGENTS.md or CLAUDE.md should map to a code symbol. Cross-reference:
81
+
82
+ 1. List every capitalized noun phrase in AGENTS.md
83
+ 2. Search the codebase for each phrase
84
+ 3. For mismatches: either rename the code symbol or update the context file
85
+
86
+ ### Glossary Table Format
87
+
88
+ ```markdown
89
+ ## Glossary
90
+
91
+ | Term | Definition | Code Symbol | Context |
92
+ |------|------------|-------------|---------|
93
+ | Order | A customer's purchase request in PENDING state | `Order` class, `orders` table | Checkout context |
94
+ | OrderFulfillment | The shipping/delivery of items for an Order | `Fulfillment` class, `fulfillments` table | Fulfillment context |
95
+ | User | An authenticated person using the system | `User` model, `users` table | Auth context |
96
+ | Account | A User's billing/subscription profile | `Account` model, `accounts` table | Billing context |
97
+ ```
98
+
99
+ ## Technique 2: Bounded Context Mapping
100
+
101
+ In DDD, the same term can mean different things in different contexts. The "Ubiquitous" in "Ubiquitous Language" is bounded — it applies *within* one context, not globally.
102
+
103
+ **Example:** An "Order" in the **Checkout** context means "pending payment." An "Order" in the **Fulfillment** context means "packed and shipped." These are different concepts that happen to share a name.
104
+
105
+ ### When Contexts Conflict
106
+
107
+ | Option | When | Tradeoff |
108
+ |---|---|---|
109
+ | **Split the term** | Different behaviors, data, lifecycle | Clearer but more types to manage |
110
+ | **Keep one term, document the phases** | Same entity, different states | Simpler but confusion at boundaries |
111
+ | **Use sub-types** | Shared core with context-specific properties | Precise but more complex |
112
+
113
+ **Default:** Split the term if the two contexts never share code. Keep one term if they share a code path.
114
+
115
+ ## Technique 3: Glossary as AI Context
116
+
117
+ This technique — from Matt Pocock's AI Engineer Summit talk — directly improves AI agent output:
118
+
119
+ 1. **Extract** your glossary from the codebase (Technique 1)
120
+ 2. **Format** it as a markdown table in your AGENTS.md or a dedicated `.md` file
121
+ 3. **Persist** it — include it in every prompt or reference it from context files
122
+ 4. **Read thinking traces** — when the LLM uses a term incorrectly, update the glossary
123
+
124
+ ### Example: Glossary Section in AGENTS.md
125
+
126
+ ```markdown
127
+ ## Glossary
128
+
129
+ - **Order** = `src/orders/Order.ts` — purchase request in PENDING state
130
+ - **Invoice** = `src/billing/Invoice.ts` — billing record generated from Order
131
+ - **Shipment** = `src/fulfillment/Shipment.ts` — physical delivery of items
132
+ ```
133
+
134
+ ### Why This Works
135
+
136
+ Pocock observed that reading the model's thinking traces confirmed this technique:
137
+
138
+ - **Reduces verbose reasoning** — the AI doesn't have to infer what a term means from context
139
+ - **Aligns implementation with intent** — the AI uses the correct code symbols from the start
140
+ - **Prevents drift** — the glossary is extracted from truth (the codebase), not from conversation
141
+
142
+ ## Technique 4: Detecting Language Drift
143
+
144
+ Over time, vocabulary naturally diverges. Watch for:
145
+
146
+ | Signal | What to do |
147
+ |---|---|
148
+ | AI generates a new term the codebase doesn't use | Update the glossary or rename the generated code |
149
+ | Two developers use different names for the same concept | Align on one name, update code and context |
150
+ | AGENTS.md mentions a term not found in code | Add the code symbol or remove the stale term |
151
+ | Same term used for different concepts in code | Refactor or split the type |
152
+ | PR review consistently corrects naming | Create a glossary entry and enforce it |
153
+
154
+ ### Drift Check Frequency
155
+
156
+ - **Per sprint** — scan for new terms in code vs AGENTS.md
157
+ - **Per AI session** — check that AGENTS.md terms match the module you're working in
158
+ - **Per refactor** — regenerate the glossary when domain types change
159
+
160
+ ## Output Checklist
161
+
162
+ - [ ] Glossary extracted from codebase: types, modules, routes, domain operations
163
+ - [ ] AGENTS.md vocabulary cross-referenced against code symbols
164
+ - [ ] Bounded contexts identified where same term has different meanings
165
+ - [ ] Glossary formatted and persisted for AI context
166
+ - [ ] Language drift signals documented for ongoing maintenance
167
+
168
+ ## See Also
169
+
170
+ - **spec-driven-development** — Define vocabulary in the spec before implementation
171
+ - **deep-module-design** — Module boundaries align with bounded contexts
172
+ - **memory-system** — Persist glossary for cross-session AI context
173
+
174
+ ## Skill Result Contract
175
+
176
+ ```xml
177
+ <skill_result>
178
+ <skill>ubiquitous-language</skill>
179
+ <status>success|partial|blocked|failure</status>
180
+ <evidence>Glossary generated, cross-references checked, bounded contexts mapped</evidence>
181
+ <artifacts>Glossary file, AGENTS.md updates, detected drifts</artifacts>
182
+ <risks>Unaligned terms deferred, contexts not fully mapped, or none</risks>
183
+ </skill_result>
184
+ ```
@@ -116,16 +116,16 @@ After creating a worktree, persist its absolute path for session resume:
116
116
 
117
117
  ```bash
118
118
  # After creating worktree
119
- mkdir -p .beads/artifacts/$BEAD_ID
120
- echo "/absolute/path/to/worktree" > .beads/artifacts/$BEAD_ID/worktree.txt
119
+ mkdir -p .opencode/artifacts/
120
+ echo "/absolute/path/to/worktree" > .opencode/artifacts/worktree.txt
121
121
  ```
122
122
 
123
123
  On session resume, restore the active worktree if tracking exists:
124
124
 
125
125
  ```bash
126
- # Check if worktree exists for active bead
127
- if [ -f .beads/artifacts/$BEAD_ID/worktree.txt ]; then
128
- WORKTREE_PATH=$(cat .beads/artifacts/$BEAD_ID/worktree.txt)
126
+ # Check if worktree exists for active plan
127
+ if [ -f .opencode/artifacts/worktree.txt ]; then
128
+ WORKTREE_PATH=$(cat .opencode/artifacts/worktree.txt)
129
129
  cd "$WORKTREE_PATH"
130
130
  fi
131
131
  ```
@@ -133,7 +133,7 @@ fi
133
133
  On worktree cleanup (after merge), remove the tracking file:
134
134
 
135
135
  ```bash
136
- rm -f .beads/artifacts/$BEAD_ID/worktree.txt
136
+ rm -f .opencode/artifacts/worktree.txt
137
137
  ```
138
138
 
139
139
  ### 3. Run Project Setup
@@ -207,12 +207,12 @@ Total time = max(typecheck, lint) + test, not typecheck + lint + test.
207
207
 
208
208
  If you just verified and nothing changed, don't re-verify:
209
209
 
210
- 1. After gates pass, record a stamp in `.beads/verify.log`
210
+ 1. After gates pass, record a stamp in `.opencode/artifacts/verify.log`
211
211
  2. Before running gates, compare current state to last stamp
212
212
  3. If match → report cached PASS, skip redundant work
213
213
  4. Cache is always bypassed for `--full` and ship/release
214
214
 
215
- This matters when other commands need verification (e.g., closing beads, `/ship`). If you verified 30 seconds ago and made no changes, the cache lets you skip.
215
+ This matters when other commands need verification (e.g., closing tasks, `/ship`). If you verified 30 seconds ago and made no changes, the cache lets you skip.
216
216
 
217
217
  ## Enforcement Gates
218
218
 
@@ -220,9 +220,9 @@ Prompt-level rules get ignored under pressure. These gates are **hard blocks**
220
220
 
221
221
  ### Gate 1: Completion Claims Require verify.log
222
222
 
223
- Before ANY completion claim (bead close, PR creation, `/ship`, task completion):
223
+ Before ANY completion claim (close plan, PR creation, `/ship`, task completion):
224
224
 
225
- 1. Check `.beads/verify.log` exists and contains a recent `PASS` stamp
225
+ 1. Check `.opencode/artifacts/verify.log` exists and contains a recent `PASS` stamp
226
226
  2. If verify.log is missing or stale (older than last file change) → **BLOCK** — run verification first
227
227
  3. If verify.log shows `FAIL` → **BLOCK** — do not proceed
228
228
 
@@ -252,12 +252,12 @@ Tasks can "pass" verification while containing stub implementations. This gate c
252
252
  ### When to Run
253
253
 
254
254
  - After all PRD tasks are marked complete (during `/ship` Phase 4-5)
255
- - Before closing any bead
255
+ - Before closing any task
256
256
  - When `--full` verification is requested
257
257
 
258
258
  ### Stub Patterns to Detect
259
259
 
260
- Scan all files modified in the current task/bead for these phantom indicators:
260
+ Scan all files modified in the current task for these phantom indicators:
261
261
 
262
262
  ```bash
263
263
  # Run against modified code files only (exclude .md, .json, .yml to avoid false positives)
@@ -17,7 +17,7 @@ CHANGED=$({
17
17
  git ls-files --others --exclude-standard -- '*.ts' '*.tsx' '*.js' '*.jsx'
18
18
  } | sort -u)
19
19
 
20
- # If in a bead worktree, diff against the branch point:
20
+ # If in a plan worktree, diff against the branch point:
21
21
  # CHANGED=$({
22
22
  # git diff --name-only --diff-filter=d main...HEAD -- '*.ts' '*.tsx' '*.js' '*.jsx'
23
23
  # git ls-files --others --exclude-standard -- '*.ts' '*.tsx' '*.js' '*.jsx'
@@ -108,14 +108,14 @@ STAMP=$(printf '%s\n%s\n%s' \
108
108
  "$(git ls-files --others --exclude-standard -- '*.ts' '*.tsx' '*.js' '*.jsx' | xargs cat 2>/dev/null)" \
109
109
  | shasum -a 256 | cut -d' ' -f1)
110
110
 
111
- echo "$STAMP $(date -u +%Y-%m-%dT%H:%M:%SZ) PASS" >> .beads/verify.log
111
+ echo "$STAMP $(date -u +%Y-%m-%dT%H:%M:%SZ) PASS" >> .opencode/artifacts/verify.log
112
112
  ```
113
113
 
114
114
  ### Skip Check (before running gates)
115
115
 
116
116
  ```bash
117
117
  # Read last verification stamp
118
- LAST_STAMP=$(tail -1 .beads/verify.log 2>/dev/null | awk '{print $1}')
118
+ LAST_STAMP=$(tail -1 .opencode/artifacts/verify.log 2>/dev/null | awk '{print $1}')
119
119
 
120
120
  # Recompute current fingerprint (same formula as recording)
121
121
  CURRENT_STAMP=$(printf '%s\n%s\n%s' \
@@ -137,11 +137,11 @@ fi
137
137
  - Any file edited, staged, or committed since last verification
138
138
  - `--full` flag always bypasses cache
139
139
  - Manual `--no-cache` flag bypasses cache
140
- - Different bead context (bead ID changed)
140
+ - Different plan context (plan ID changed)
141
141
 
142
142
  ### Agent Behavior
143
143
 
144
- When another command needs verification (e.g., closing a bead, `/ship`):
144
+ When another command needs verification (e.g., closing a plan, `/ship`):
145
145
 
146
146
  1. **Check cache first** — if clean, report `"Verification: cached PASS (no changes since <timestamp>)"`
147
147
  2. **If cache miss** — run incremental gates normally
package/package.json CHANGED
@@ -1,78 +1,78 @@
1
1
  {
2
- "name": "opencodekit",
3
- "version": "0.21.10",
4
- "description": "CLI tool for bootstrapping and managing OpenCodeKit projects",
5
- "keywords": [
6
- "agents",
7
- "cli",
8
- "mcp",
9
- "opencode",
10
- "opencodekit",
11
- "template"
12
- ],
13
- "homepage": "https://github.com/opencodekit-template/opencodekit-template#readme",
14
- "bugs": {
15
- "url": "https://github.com/opencodekit-template/opencodekit-template/issues"
16
- },
17
- "license": "MIT",
18
- "author": "heyhuynhgiabuu <buub1309120@gmail.com>",
19
- "repository": {
20
- "type": "git",
21
- "url": "git+https://github.com/opencodekit-template/opencodekit-template.git"
22
- },
23
- "bin": {
24
- "ock": "dist/index.js"
25
- },
26
- "files": [
27
- "dist",
28
- "README.md"
29
- ],
30
- "type": "module",
31
- "publishConfig": {
32
- "access": "public",
33
- "registry": "https://registry.npmjs.org"
34
- },
35
- "scripts": {
36
- "dev": "tsx src/index.ts",
37
- "build": "tsdown && mkdir -p dist/template && rsync -av --exclude=node_modules --exclude=dist --exclude=.git --exclude=coverage --exclude=.next --exclude=.turbo --exclude=logs --exclude=package-lock.json --exclude='plugin/*.bak' --exclude=memory.db --exclude=memory.db-shm --exclude=memory.db-wal --exclude='memory.db.corrupt.*' --exclude=memory-recovery.log .opencode/ dist/template/.opencode/",
38
- "typecheck": "tsgo --noEmit",
39
- "test": "vitest run",
40
- "test:watch": "vitest",
41
- "validate:command-doc": "tsx src/validation/command-doc.ts --check",
42
- "validate:docs-drift": "tsx src/validation/docs-drift.ts --check",
43
- "validate:skill-lint": "tsx src/validation/skill-lint.ts --check",
44
- "validate:governance": "npm run validate:command-doc && npm run validate:docs-drift && npm run validate:skill-lint",
45
- "lint": "oxlint .",
46
- "lint:fix": "oxlint --fix .",
47
- "format": "oxfmt",
48
- "format:check": "oxfmt --check"
49
- },
50
- "dependencies": {
51
- "@ai-sdk/provider": "^3.0.8",
52
- "@ai-sdk/provider-utils": "^4.0.15",
53
- "@clack/prompts": "^0.7.0",
54
- "@opencode-ai/plugin": "^1.2.6",
55
- "cac": "^6.7.14",
56
- "cli-table3": "^0.6.5",
57
- "diff": "^8.0.3",
58
- "env-paths": "^4.0.0",
59
- "node-machine-id": "^1.1.12",
60
- "ora": "^9.3.0",
61
- "picocolors": "^1.1.1",
62
- "zod": "^3.25.76"
63
- },
64
- "devDependencies": {
65
- "@types/diff": "^8.0.0",
66
- "@types/node": "^22.19.11",
67
- "@typescript/native-preview": "latest",
68
- "oxfmt": "^0.23.0",
69
- "oxlint": "^1.48.0",
70
- "tsdown": "latest",
71
- "tsx": "latest",
72
- "typescript": "^5.9.3",
73
- "vitest": "latest"
74
- },
75
- "engines": {
76
- "node": ">=20.19.0"
77
- }
2
+ "name": "opencodekit",
3
+ "version": "0.23.0",
4
+ "description": "CLI tool for bootstrapping and managing OpenCodeKit projects",
5
+ "keywords": [
6
+ "agents",
7
+ "cli",
8
+ "mcp",
9
+ "opencode",
10
+ "opencodekit",
11
+ "template"
12
+ ],
13
+ "homepage": "https://github.com/opencodekit-template/opencodekit-template#readme",
14
+ "bugs": {
15
+ "url": "https://github.com/opencodekit-template/opencodekit-template/issues"
16
+ },
17
+ "license": "MIT",
18
+ "author": "heyhuynhgiabuu <buub1309120@gmail.com>",
19
+ "repository": {
20
+ "type": "git",
21
+ "url": "git+https://github.com/opencodekit-template/opencodekit-template.git"
22
+ },
23
+ "bin": {
24
+ "ock": "dist/index.js"
25
+ },
26
+ "files": [
27
+ "dist",
28
+ "README.md"
29
+ ],
30
+ "type": "module",
31
+ "publishConfig": {
32
+ "access": "public",
33
+ "registry": "https://registry.npmjs.org"
34
+ },
35
+ "scripts": {
36
+ "dev": "tsx src/index.ts",
37
+ "build": "tsdown && mkdir -p dist/template && rsync -av --exclude=node_modules --exclude=dist --exclude=.git --exclude=coverage --exclude=.next --exclude=.turbo --exclude=logs --exclude=package-lock.json --exclude='plugin/*.bak' --exclude=memory.db --exclude=memory.db-shm --exclude=memory.db-wal --exclude='memory.db.corrupt.*' --exclude=memory-recovery.log .opencode/ dist/template/.opencode/",
38
+ "typecheck": "tsgo --noEmit",
39
+ "test": "vitest run",
40
+ "test:watch": "vitest",
41
+ "validate:command-doc": "tsx src/validation/command-doc.ts --check",
42
+ "validate:docs-drift": "tsx src/validation/docs-drift.ts --check",
43
+ "validate:skill-lint": "tsx src/validation/skill-lint.ts --check",
44
+ "validate:governance": "npm run validate:command-doc && npm run validate:docs-drift && npm run validate:skill-lint",
45
+ "lint": "oxlint .",
46
+ "lint:fix": "oxlint --fix .",
47
+ "format": "oxfmt",
48
+ "format:check": "oxfmt --check"
49
+ },
50
+ "dependencies": {
51
+ "@ai-sdk/provider": "^3.0.8",
52
+ "@ai-sdk/provider-utils": "^4.0.15",
53
+ "@clack/prompts": "^0.7.0",
54
+ "@opencode-ai/plugin": "^1.2.6",
55
+ "cac": "^6.7.14",
56
+ "cli-table3": "^0.6.5",
57
+ "diff": "^8.0.3",
58
+ "env-paths": "^4.0.0",
59
+ "node-machine-id": "^1.1.12",
60
+ "ora": "^9.3.0",
61
+ "picocolors": "^1.1.1",
62
+ "zod": "^3.25.76"
63
+ },
64
+ "devDependencies": {
65
+ "@types/diff": "^8.0.0",
66
+ "@types/node": "^22.19.11",
67
+ "@typescript/native-preview": "latest",
68
+ "oxfmt": "^0.23.0",
69
+ "oxlint": "^1.48.0",
70
+ "tsdown": "latest",
71
+ "tsx": "latest",
72
+ "typescript": "^5.9.3",
73
+ "vitest": "latest"
74
+ },
75
+ "engines": {
76
+ "node": ">=20.19.0"
77
+ }
78
78
  }