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.
- package/README.md +1 -1
- package/dist/index.js +4 -25
- package/dist/template/.opencode/.template-manifest.json +115 -188
- package/dist/template/.opencode/AGENTS.md +127 -484
- package/dist/template/.opencode/README.md +2 -2
- package/dist/template/.opencode/agent/build.md +158 -356
- package/dist/template/.opencode/agent/explore.md +0 -1
- package/dist/template/.opencode/agent/plan.md +7 -16
- package/dist/template/.opencode/agent/review.md +0 -1
- package/dist/template/.opencode/agent/scout.md +2 -3
- package/dist/template/.opencode/agent/vision.md +0 -1
- package/dist/template/.opencode/artifacts/.active +1 -0
- package/dist/template/.opencode/artifacts/example/plan.md +12 -0
- package/dist/template/.opencode/artifacts/example/progress.md +4 -0
- package/dist/template/.opencode/artifacts/example/research.md +4 -0
- package/dist/template/.opencode/artifacts/example/spec.md +16 -0
- package/dist/template/.opencode/artifacts/todo.md +5 -0
- package/dist/template/.opencode/artifacts/verify.log +4 -0
- package/dist/template/.opencode/command/clarify.md +46 -0
- package/dist/template/.opencode/command/commit.md +53 -0
- package/dist/template/.opencode/command/create.md +29 -71
- package/dist/template/.opencode/command/design.md +1 -2
- package/dist/template/.opencode/command/explore.md +3 -4
- package/dist/template/.opencode/command/fix.md +55 -0
- package/dist/template/.opencode/command/improve-architecture.md +55 -0
- package/dist/template/.opencode/command/init.md +86 -69
- package/dist/template/.opencode/command/plan.md +30 -60
- package/dist/template/.opencode/command/pr.md +10 -28
- package/dist/template/.opencode/command/refactor.md +65 -0
- package/dist/template/.opencode/command/research.md +7 -29
- package/dist/template/.opencode/command/review-codebase.md +6 -13
- package/dist/template/.opencode/command/ship.md +136 -78
- package/dist/template/.opencode/command/test.md +66 -0
- package/dist/template/.opencode/command/ui-review.md +2 -4
- package/dist/template/.opencode/command/verify.md +15 -23
- package/dist/template/.opencode/dcp.jsonc +96 -85
- package/dist/template/.opencode/memory/README.md +4 -6
- package/dist/template/.opencode/memory/_templates/adr.md +45 -0
- package/dist/template/.opencode/memory/_templates/prd.md +1 -1
- package/dist/template/.opencode/memory/_templates/roadmap.md +1 -1
- package/dist/template/.opencode/memory/_templates/state.md +1 -1
- package/dist/template/.opencode/memory/project/gotchas.md +4 -4
- package/dist/template/.opencode/memory/project/project.md +2 -2
- package/dist/template/.opencode/memory/project/roadmap.md +1 -1
- package/dist/template/.opencode/memory/project/state.md +2 -2
- package/dist/template/.opencode/memory/project/tech-stack.md +2 -2
- package/dist/template/.opencode/memory/session-context.md +1 -1
- package/dist/template/.opencode/opencode.json +14 -152
- package/dist/template/.opencode/plugin/README.md +2 -2
- package/dist/template/.opencode/plugin/guard.ts +62 -0
- package/dist/template/.opencode/plugin/{lib/memory-admin-tools.ts → memory/admin.ts} +4 -4
- package/dist/template/.opencode/plugin/{lib → memory}/capture.ts +1 -1
- package/dist/template/.opencode/plugin/{lib → memory}/compile.ts +2 -2
- package/dist/template/.opencode/plugin/{lib → memory}/context.ts +1 -1
- package/dist/template/.opencode/plugin/{lib → memory}/curator.ts +1 -1
- package/dist/template/.opencode/plugin/{lib → memory}/db/observations.ts +102 -3
- package/dist/template/.opencode/plugin/{lib → memory}/db/schema.ts +43 -1
- package/dist/template/.opencode/plugin/{lib → memory}/db/types.ts +22 -0
- package/dist/template/.opencode/plugin/{lib/memory-db.ts → memory/db.ts} +1 -1
- package/dist/template/.opencode/plugin/{lib → memory}/distill.ts +1 -1
- package/dist/template/.opencode/plugin/{lib/memory-helpers.ts → memory/helpers.ts} +5 -1
- package/dist/template/.opencode/plugin/{lib/memory-hooks.ts → memory/hooks.ts} +1 -1
- package/dist/template/.opencode/plugin/{lib → memory}/index-generator.ts +2 -2
- package/dist/template/.opencode/plugin/{lib → memory}/inject.ts +1 -1
- package/dist/template/.opencode/plugin/{lib → memory}/lint.ts +2 -2
- package/dist/template/.opencode/plugin/memory/tools.ts +322 -0
- package/dist/template/.opencode/plugin/{lib → memory}/validate.ts +2 -2
- package/dist/template/.opencode/plugin/memory.ts +7 -17
- package/dist/template/.opencode/plugin/srcwalk.ts +721 -0
- package/dist/template/.opencode/skill/agent-code-quality-gate/SKILL.md +98 -0
- package/dist/template/.opencode/skill/behavioral-kernel/SKILL.md +52 -0
- package/dist/template/.opencode/skill/brainstorming/SKILL.md +1 -1
- package/dist/template/.opencode/skill/browser-testing-with-devtools/SKILL.md +85 -0
- package/dist/template/.opencode/skill/code-cleanup/SKILL.md +114 -0
- package/dist/template/.opencode/skill/code-navigation/SKILL.md +142 -0
- package/dist/template/.opencode/skill/code-review-and-quality/SKILL.md +131 -0
- package/dist/template/.opencode/skill/context-engineering/SKILL.md +1 -1
- package/dist/template/.opencode/skill/debugging-and-error-recovery/SKILL.md +109 -0
- package/dist/template/.opencode/skill/deep-module-design/SKILL.md +207 -0
- package/dist/template/.opencode/skill/development-lifecycle/SKILL.md +26 -45
- package/dist/template/.opencode/skill/gemini-large-context/SKILL.md +4 -4
- package/dist/template/.opencode/skill/git-workflow-and-versioning/SKILL.md +77 -0
- package/dist/template/.opencode/skill/grill-me/SKILL.md +140 -0
- package/dist/template/.opencode/skill/memory-system/SKILL.md +9 -10
- package/dist/template/.opencode/skill/opensrc/references/example-workflow.md +1 -1
- package/dist/template/.opencode/skill/planning-and-task-breakdown/SKILL.md +116 -0
- package/dist/template/.opencode/skill/shipping-and-launch/SKILL.md +95 -0
- package/dist/template/.opencode/skill/source-driven-development/SKILL.md +103 -0
- package/dist/template/.opencode/skill/spec-driven-development/SKILL.md +121 -0
- package/dist/template/.opencode/skill/srcwalk/SKILL.md +161 -0
- package/dist/template/.opencode/skill/subagent-driven-development/SKILL.md +1 -1
- package/dist/template/.opencode/skill/ubiquitous-language/SKILL.md +184 -0
- package/dist/template/.opencode/skill/using-git-worktrees/SKILL.md +6 -6
- package/dist/template/.opencode/skill/verification-before-completion/SKILL.md +6 -6
- package/dist/template/.opencode/skill/verification-before-completion/references/VERIFICATION_PROTOCOL.md +5 -5
- package/package.json +76 -76
- package/dist/template/.opencode/AGENT_ALIGNMENT.md +0 -564
- package/dist/template/.opencode/agent/painter.md +0 -83
- package/dist/template/.opencode/command/compound.md +0 -240
- package/dist/template/.opencode/command/curate.md +0 -299
- package/dist/template/.opencode/command/handoff.md +0 -149
- package/dist/template/.opencode/command/health.md +0 -356
- package/dist/template/.opencode/command/init-context.md +0 -297
- package/dist/template/.opencode/command/init-user.md +0 -125
- package/dist/template/.opencode/command/iterate.md +0 -200
- package/dist/template/.opencode/command/lfg.md +0 -173
- package/dist/template/.opencode/command/resume.md +0 -78
- package/dist/template/.opencode/command/status.md +0 -126
- package/dist/template/.opencode/command/ui-slop-check.md +0 -169
- package/dist/template/.opencode/plans/1768385996691-silent-wizard.md +0 -247
- package/dist/template/.opencode/plans/1770006237537-mighty-otter.md +0 -418
- package/dist/template/.opencode/plans/1770006913647-glowing-forest.md +0 -170
- package/dist/template/.opencode/plans/1770013678126-witty-planet.md +0 -278
- package/dist/template/.opencode/plans/1770112267595-shiny-rocket.md +0 -258
- package/dist/template/.opencode/plans/swarm-protocol.md +0 -123
- package/dist/template/.opencode/plugin/lib/memory-tools.ts +0 -535
- package/dist/template/.opencode/skill/agent-evals/SKILL.md +0 -208
- package/dist/template/.opencode/skill/anti-ai-slop/SKILL.md +0 -76
- package/dist/template/.opencode/skill/augment-context-engine/SKILL.md +0 -122
- package/dist/template/.opencode/skill/augment-context-engine/mcp.json +0 -6
- package/dist/template/.opencode/skill/beads/SKILL.md +0 -182
- package/dist/template/.opencode/skill/beads/references/BEST_PRACTICES.md +0 -27
- package/dist/template/.opencode/skill/beads/references/BOUNDARIES.md +0 -219
- package/dist/template/.opencode/skill/beads/references/DEPENDENCIES.md +0 -124
- package/dist/template/.opencode/skill/beads/references/EXAMPLES.md +0 -45
- package/dist/template/.opencode/skill/beads/references/FILE_CLAIMING.md +0 -101
- package/dist/template/.opencode/skill/beads/references/GIT_SYNC.md +0 -25
- package/dist/template/.opencode/skill/beads/references/HIERARCHY.md +0 -71
- package/dist/template/.opencode/skill/beads/references/MULTI_AGENT.md +0 -40
- package/dist/template/.opencode/skill/beads/references/RESUMABILITY.md +0 -177
- package/dist/template/.opencode/skill/beads/references/SESSION_PROTOCOL.md +0 -61
- package/dist/template/.opencode/skill/beads/references/TASK_CREATION.md +0 -38
- package/dist/template/.opencode/skill/beads/references/TROUBLESHOOTING.md +0 -38
- package/dist/template/.opencode/skill/beads/references/WORKFLOWS.md +0 -226
- package/dist/template/.opencode/skill/brand-asset-protocol/SKILL.md +0 -222
- package/dist/template/.opencode/skill/code-search-patterns/SKILL.md +0 -224
- package/dist/template/.opencode/skill/code-simplification/SKILL.md +0 -211
- package/dist/template/.opencode/skill/context-condensation/SKILL.md +0 -149
- package/dist/template/.opencode/skill/context-initialization/SKILL.md +0 -69
- package/dist/template/.opencode/skill/context-management/SKILL.md +0 -390
- package/dist/template/.opencode/skill/deep-research/SKILL.md +0 -384
- package/dist/template/.opencode/skill/design-direction-advisor/SKILL.md +0 -139
- package/dist/template/.opencode/skill/dispatching-parallel-agents/SKILL.md +0 -191
- package/dist/template/.opencode/skill/executing-plans/SKILL.md +0 -247
- package/dist/template/.opencode/skill/figma-go/SKILL.md +0 -65
- package/dist/template/.opencode/skill/finishing-a-development-branch/SKILL.md +0 -357
- package/dist/template/.opencode/skill/full-output-enforcement/SKILL.md +0 -62
- package/dist/template/.opencode/skill/gh-address-comments/SKILL.md +0 -29
- package/dist/template/.opencode/skill/gh-address-comments/scripts/fetch_comments.py +0 -237
- package/dist/template/.opencode/skill/gh-fix-ci/SKILL.md +0 -38
- package/dist/template/.opencode/skill/gh-fix-ci/scripts/inspect_pr_checks.py +0 -509
- package/dist/template/.opencode/skill/hi-fi-prototype-html/SKILL.md +0 -253
- package/dist/template/.opencode/skill/html-deck-export/SKILL.md +0 -189
- package/dist/template/.opencode/skill/index-knowledge/SKILL.md +0 -413
- package/dist/template/.opencode/skill/memory-grounding/SKILL.md +0 -68
- package/dist/template/.opencode/skill/playwriter/SKILL.md +0 -158
- package/dist/template/.opencode/skill/portless/SKILL.md +0 -109
- package/dist/template/.opencode/skill/prd/SKILL.md +0 -146
- package/dist/template/.opencode/skill/prd-task/SKILL.md +0 -182
- package/dist/template/.opencode/skill/prd-task/references/prd-schema.json +0 -124
- package/dist/template/.opencode/skill/prompt-leverage/SKILL.md +0 -90
- package/dist/template/.opencode/skill/prompt-leverage/references/framework.md +0 -91
- package/dist/template/.opencode/skill/prompt-leverage/scripts/augment_prompt.py +0 -157
- package/dist/template/.opencode/skill/receiving-code-review/SKILL.md +0 -263
- package/dist/template/.opencode/skill/reconcile/SKILL.md +0 -183
- package/dist/template/.opencode/skill/reflection-checkpoints/SKILL.md +0 -183
- package/dist/template/.opencode/skill/requesting-code-review/SKILL.md +0 -443
- package/dist/template/.opencode/skill/requesting-code-review/references/specialist-profiles.md +0 -108
- package/dist/template/.opencode/skill/requesting-code-review/review.md +0 -160
- package/dist/template/.opencode/skill/rtk-command-compression/SKILL.md +0 -134
- package/dist/template/.opencode/skill/screenshot/SKILL.md +0 -48
- package/dist/template/.opencode/skill/screenshot/scripts/ensure_macos_permissions.sh +0 -54
- package/dist/template/.opencode/skill/screenshot/scripts/macos_display_info.swift +0 -22
- package/dist/template/.opencode/skill/screenshot/scripts/macos_permissions.swift +0 -40
- package/dist/template/.opencode/skill/screenshot/scripts/macos_window_info.swift +0 -126
- package/dist/template/.opencode/skill/screenshot/scripts/take_screenshot.ps1 +0 -163
- package/dist/template/.opencode/skill/screenshot/scripts/take_screenshot.py +0 -585
- package/dist/template/.opencode/skill/security-threat-model/SKILL.md +0 -36
- package/dist/template/.opencode/skill/security-threat-model/references/prompt-template.md +0 -255
- package/dist/template/.opencode/skill/security-threat-model/references/security-controls-and-assets.md +0 -32
- package/dist/template/.opencode/skill/sharing-skills/SKILL.md +0 -214
- package/dist/template/.opencode/skill/skill-creator/SKILL.md +0 -181
- package/dist/template/.opencode/skill/skill-installer/SKILL.md +0 -58
- package/dist/template/.opencode/skill/skill-installer/scripts/github_utils.py +0 -21
- package/dist/template/.opencode/skill/skill-installer/scripts/install-skill-from-github.py +0 -313
- package/dist/template/.opencode/skill/skill-installer/scripts/list-skills.py +0 -106
- package/dist/template/.opencode/skill/swarm-coordination/SKILL.md +0 -244
- package/dist/template/.opencode/skill/swarm-coordination/references/architecture.md +0 -39
- package/dist/template/.opencode/skill/swarm-coordination/references/delegation-worker-protocol.md +0 -145
- package/dist/template/.opencode/skill/swarm-coordination/references/dependency-graph.md +0 -50
- package/dist/template/.opencode/skill/swarm-coordination/references/drift-check.md +0 -90
- package/dist/template/.opencode/skill/swarm-coordination/references/integration-beads.md +0 -20
- package/dist/template/.opencode/skill/swarm-coordination/references/launch-flow.md +0 -186
- package/dist/template/.opencode/skill/swarm-coordination/references/reconciler.md +0 -172
- package/dist/template/.opencode/skill/swarm-coordination/references/tier-enforcement.md +0 -78
- package/dist/template/.opencode/skill/swarm-coordination/references/tmux-integration.md +0 -134
- package/dist/template/.opencode/skill/systematic-debugging/SKILL.md +0 -402
- package/dist/template/.opencode/skill/terse-output-mode/SKILL.md +0 -95
- package/dist/template/.opencode/skill/think-in-code/SKILL.md +0 -136
- package/dist/template/.opencode/skill/ux-quality-gates/SKILL.md +0 -137
- package/dist/template/.opencode/skill/v1-run/SKILL.md +0 -175
- package/dist/template/.opencode/skill/v1-run/mcp.json +0 -6
- package/dist/template/.opencode/skill/verification-gates/SKILL.md +0 -63
- package/dist/template/.opencode/skill/visual-analysis/SKILL.md +0 -154
- package/dist/template/.opencode/skill/web-design-guidelines/SKILL.md +0 -46
- package/dist/template/.opencode/skill/workspace-setup/SKILL.md +0 -76
- package/dist/template/.opencode/skill/writing-plans/SKILL.md +0 -320
- /package/dist/template/.opencode/plugin/{lib → memory}/compact.ts +0 -0
- /package/dist/template/.opencode/plugin/{lib → memory}/db/graph.ts +0 -0
- /package/dist/template/.opencode/plugin/{lib → memory}/db/maintenance.ts +0 -0
- /package/dist/template/.opencode/plugin/{lib → memory}/db/pipeline.ts +0 -0
- /package/dist/template/.opencode/plugin/{lib → memory}/notify.ts +0 -0
- /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 `.
|
|
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 .
|
|
120
|
-
echo "/absolute/path/to/worktree" > .
|
|
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
|
|
127
|
-
if [ -f .
|
|
128
|
-
WORKTREE_PATH=$(cat .
|
|
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 .
|
|
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 `.
|
|
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
|
|
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 (
|
|
223
|
+
Before ANY completion claim (close plan, PR creation, `/ship`, task completion):
|
|
224
224
|
|
|
225
|
-
1. Check `.
|
|
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
|
|
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
|
|
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
|
|
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" >> .
|
|
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 .
|
|
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
|
|
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
|
|
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
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
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
|
}
|