@lucasi/vibes 0.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.
- package/AGENTS.md +162 -0
- package/MIGRATION.md +368 -0
- package/README.md +44 -0
- package/bin/setup.js +127 -0
- package/commands/build-fix.md +56 -0
- package/commands/checkpoint.md +67 -0
- package/commands/code-review.md +68 -0
- package/commands/e2e.md +105 -0
- package/commands/eval.md +88 -0
- package/commands/evolve.md +36 -0
- package/commands/go-build.md +87 -0
- package/commands/go-review.md +71 -0
- package/commands/go-test.md +131 -0
- package/commands/harness-audit.md +73 -0
- package/commands/instinct-export.md +93 -0
- package/commands/instinct-import.md +88 -0
- package/commands/instinct-status.md +29 -0
- package/commands/learn.md +61 -0
- package/commands/loop-start.md +32 -0
- package/commands/loop-status.md +24 -0
- package/commands/model-route.md +26 -0
- package/commands/orchestrate.md +88 -0
- package/commands/plan.md +25 -0
- package/commands/projects.md +23 -0
- package/commands/promote.md +23 -0
- package/commands/quality-gate.md +29 -0
- package/commands/refactor-clean.md +102 -0
- package/commands/rust-build.md +78 -0
- package/commands/rust-review.md +65 -0
- package/commands/rust-test.md +104 -0
- package/commands/security.md +89 -0
- package/commands/setup-pm.md +67 -0
- package/commands/skill-create.md +117 -0
- package/commands/tdd.md +67 -0
- package/commands/test-coverage.md +80 -0
- package/commands/update-codemaps.md +81 -0
- package/commands/update-docs.md +67 -0
- package/commands/verify.md +67 -0
- package/instructions/INSTRUCTIONS.md +337 -0
- package/opencode.json +466 -0
- package/package.json +27 -0
- package/prompts/agents/architect.txt +175 -0
- package/prompts/agents/build-error-resolver.txt +233 -0
- package/prompts/agents/code-reviewer.txt +103 -0
- package/prompts/agents/cpp-build-resolver.txt +81 -0
- package/prompts/agents/cpp-reviewer.txt +65 -0
- package/prompts/agents/database-reviewer.txt +247 -0
- package/prompts/agents/doc-updater.txt +192 -0
- package/prompts/agents/docs-lookup.txt +57 -0
- package/prompts/agents/e2e-runner.txt +305 -0
- package/prompts/agents/go-build-resolver.txt +325 -0
- package/prompts/agents/go-reviewer.txt +241 -0
- package/prompts/agents/harness-optimizer.txt +27 -0
- package/prompts/agents/java-build-resolver.txt +123 -0
- package/prompts/agents/java-reviewer.txt +97 -0
- package/prompts/agents/kotlin-build-resolver.txt +120 -0
- package/prompts/agents/kotlin-reviewer.txt +127 -0
- package/prompts/agents/loop-operator.txt +39 -0
- package/prompts/agents/planner.txt +113 -0
- package/prompts/agents/python-reviewer.txt +85 -0
- package/prompts/agents/refactor-cleaner.txt +241 -0
- package/prompts/agents/rust-build-resolver.txt +93 -0
- package/prompts/agents/rust-reviewer.txt +61 -0
- package/prompts/agents/security-reviewer.txt +207 -0
- package/prompts/agents/tdd-guide.txt +216 -0
- package/skills/agent-eval/SKILL.md +145 -0
- package/skills/agent-harness-construction/SKILL.md +73 -0
- package/skills/agent-introspection-debugging/SKILL.md +153 -0
- package/skills/agent-payment-x402/SKILL.md +178 -0
- package/skills/agent-sort/SKILL.md +215 -0
- package/skills/agentic-engineering/SKILL.md +63 -0
- package/skills/ai-first-engineering/SKILL.md +51 -0
- package/skills/ai-regression-testing/SKILL.md +385 -0
- package/skills/android-clean-architecture/SKILL.md +339 -0
- package/skills/api-connector-builder/SKILL.md +120 -0
- package/skills/api-design/SKILL.md +523 -0
- package/skills/architecture-decision-records/SKILL.md +179 -0
- package/skills/article-writing/SKILL.md +79 -0
- package/skills/automation-audit-ops/SKILL.md +142 -0
- package/skills/autonomous-agent-harness/SKILL.md +267 -0
- package/skills/autonomous-loops/SKILL.md +610 -0
- package/skills/backend-patterns/SKILL.md +598 -0
- package/skills/benchmark/SKILL.md +93 -0
- package/skills/blueprint/SKILL.md +105 -0
- package/skills/brand-voice/SKILL.md +97 -0
- package/skills/brand-voice/references/voice-profile-schema.md +55 -0
- package/skills/browser-qa/SKILL.md +87 -0
- package/skills/bun-runtime/SKILL.md +84 -0
- package/skills/canary-watch/SKILL.md +99 -0
- package/skills/carrier-relationship-management/SKILL.md +212 -0
- package/skills/ck/SKILL.md +147 -0
- package/skills/ck/commands/forget.mjs +44 -0
- package/skills/ck/commands/info.mjs +24 -0
- package/skills/ck/commands/init.mjs +143 -0
- package/skills/ck/commands/list.mjs +40 -0
- package/skills/ck/commands/migrate.mjs +202 -0
- package/skills/ck/commands/resume.mjs +36 -0
- package/skills/ck/commands/save.mjs +210 -0
- package/skills/ck/commands/shared.mjs +387 -0
- package/skills/ck/hooks/session-start.mjs +224 -0
- package/skills/claude-api/SKILL.md +337 -0
- package/skills/claude-devfleet/SKILL.md +103 -0
- package/skills/click-path-audit/SKILL.md +244 -0
- package/skills/clickhouse-io/SKILL.md +439 -0
- package/skills/code-tour/SKILL.md +236 -0
- package/skills/codebase-onboarding/SKILL.md +233 -0
- package/skills/coding-standards/SKILL.md +549 -0
- package/skills/compose-multiplatform-patterns/SKILL.md +299 -0
- package/skills/configure-ecc/SKILL.md +367 -0
- package/skills/connections-optimizer/SKILL.md +189 -0
- package/skills/content-engine/SKILL.md +131 -0
- package/skills/content-hash-cache-pattern/SKILL.md +161 -0
- package/skills/context-budget/SKILL.md +135 -0
- package/skills/continuous-agent-loop/SKILL.md +45 -0
- package/skills/continuous-learning/SKILL.md +123 -0
- package/skills/continuous-learning/config.json +18 -0
- package/skills/continuous-learning/evaluate-session.sh +69 -0
- package/skills/continuous-learning-v2/SKILL.md +365 -0
- package/skills/continuous-learning-v2/agents/observer-loop.sh +282 -0
- package/skills/continuous-learning-v2/agents/observer.md +198 -0
- package/skills/continuous-learning-v2/agents/session-guardian.sh +150 -0
- package/skills/continuous-learning-v2/agents/start-observer.sh +244 -0
- package/skills/continuous-learning-v2/config.json +8 -0
- package/skills/continuous-learning-v2/hooks/observe.sh +428 -0
- package/skills/continuous-learning-v2/scripts/detect-project.sh +228 -0
- package/skills/continuous-learning-v2/scripts/instinct-cli.py +1426 -0
- package/skills/continuous-learning-v2/scripts/test_parse_instinct.py +984 -0
- package/skills/cost-aware-llm-pipeline/SKILL.md +183 -0
- package/skills/council/SKILL.md +203 -0
- package/skills/cpp-coding-standards/SKILL.md +723 -0
- package/skills/cpp-testing/SKILL.md +324 -0
- package/skills/crosspost/SKILL.md +111 -0
- package/skills/csharp-testing/SKILL.md +321 -0
- package/skills/customer-billing-ops/SKILL.md +140 -0
- package/skills/customs-trade-compliance/SKILL.md +263 -0
- package/skills/dart-flutter-patterns/SKILL.md +563 -0
- package/skills/dashboard-builder/SKILL.md +108 -0
- package/skills/data-scraper-agent/SKILL.md +764 -0
- package/skills/database-migrations/SKILL.md +429 -0
- package/skills/deep-research/SKILL.md +155 -0
- package/skills/defi-amm-security/SKILL.md +160 -0
- package/skills/deployment-patterns/SKILL.md +427 -0
- package/skills/design-system/SKILL.md +82 -0
- package/skills/django-patterns/SKILL.md +734 -0
- package/skills/django-security/SKILL.md +593 -0
- package/skills/django-tdd/SKILL.md +729 -0
- package/skills/django-verification/SKILL.md +469 -0
- package/skills/dmux-workflows/SKILL.md +191 -0
- package/skills/docker-patterns/SKILL.md +364 -0
- package/skills/documentation-lookup/SKILL.md +90 -0
- package/skills/dotnet-patterns/SKILL.md +321 -0
- package/skills/e2e-testing/SKILL.md +326 -0
- package/skills/ecc-tools-cost-audit/SKILL.md +160 -0
- package/skills/email-ops/SKILL.md +121 -0
- package/skills/energy-procurement/SKILL.md +228 -0
- package/skills/enterprise-agent-ops/SKILL.md +50 -0
- package/skills/eval-harness/SKILL.md +270 -0
- package/skills/evm-token-decimals/SKILL.md +130 -0
- package/skills/exa-search/SKILL.md +103 -0
- package/skills/fal-ai-media/SKILL.md +284 -0
- package/skills/finance-billing-ops/SKILL.md +127 -0
- package/skills/flutter-dart-code-review/SKILL.md +435 -0
- package/skills/foundation-models-on-device/SKILL.md +243 -0
- package/skills/frontend-design/SKILL.md +145 -0
- package/skills/frontend-patterns/SKILL.md +642 -0
- package/skills/frontend-slides/SKILL.md +184 -0
- package/skills/frontend-slides/STYLE_PRESETS.md +330 -0
- package/skills/gan-style-harness/SKILL.md +278 -0
- package/skills/git-workflow/SKILL.md +715 -0
- package/skills/github-ops/SKILL.md +144 -0
- package/skills/golang-patterns/SKILL.md +674 -0
- package/skills/golang-testing/SKILL.md +720 -0
- package/skills/google-workspace-ops/SKILL.md +95 -0
- package/skills/healthcare-cdss-patterns/SKILL.md +245 -0
- package/skills/healthcare-emr-patterns/SKILL.md +159 -0
- package/skills/healthcare-eval-harness/SKILL.md +207 -0
- package/skills/healthcare-phi-compliance/SKILL.md +145 -0
- package/skills/hexagonal-architecture/SKILL.md +276 -0
- package/skills/hipaa-compliance/SKILL.md +78 -0
- package/skills/hookify-rules/SKILL.md +128 -0
- package/skills/inventory-demand-planning/SKILL.md +247 -0
- package/skills/investor-materials/SKILL.md +96 -0
- package/skills/investor-outreach/SKILL.md +91 -0
- package/skills/iterative-retrieval/SKILL.md +211 -0
- package/skills/java-coding-standards/SKILL.md +147 -0
- package/skills/jira-integration/SKILL.md +293 -0
- package/skills/jpa-patterns/SKILL.md +151 -0
- package/skills/knowledge-ops/SKILL.md +154 -0
- package/skills/kotlin-coroutines-flows/SKILL.md +284 -0
- package/skills/kotlin-exposed-patterns/SKILL.md +719 -0
- package/skills/kotlin-ktor-patterns/SKILL.md +689 -0
- package/skills/kotlin-patterns/SKILL.md +711 -0
- package/skills/kotlin-testing/SKILL.md +824 -0
- package/skills/laravel-patterns/SKILL.md +415 -0
- package/skills/laravel-plugin-discovery/SKILL.md +229 -0
- package/skills/laravel-security/SKILL.md +285 -0
- package/skills/laravel-tdd/SKILL.md +283 -0
- package/skills/laravel-verification/SKILL.md +179 -0
- package/skills/lead-intelligence/SKILL.md +321 -0
- package/skills/lead-intelligence/agents/enrichment-agent.md +85 -0
- package/skills/lead-intelligence/agents/mutual-mapper.md +75 -0
- package/skills/lead-intelligence/agents/outreach-drafter.md +98 -0
- package/skills/lead-intelligence/agents/signal-scorer.md +60 -0
- package/skills/liquid-glass-design/SKILL.md +279 -0
- package/skills/llm-trading-agent-security/SKILL.md +146 -0
- package/skills/logistics-exception-management/SKILL.md +222 -0
- package/skills/manim-video/SKILL.md +89 -0
- package/skills/manim-video/assets/network_graph_scene.py +52 -0
- package/skills/market-research/SKILL.md +75 -0
- package/skills/mcp-server-patterns/SKILL.md +69 -0
- package/skills/messages-ops/SKILL.md +104 -0
- package/skills/nanoclaw-repl/SKILL.md +33 -0
- package/skills/nestjs-patterns/SKILL.md +230 -0
- package/skills/nextjs-turbopack/SKILL.md +44 -0
- package/skills/nodejs-keccak256/SKILL.md +102 -0
- package/skills/nutrient-document-processing/SKILL.md +167 -0
- package/skills/nuxt4-patterns/SKILL.md +100 -0
- package/skills/openclaw-persona-forge/SKILL.md +296 -0
- package/skills/openclaw-persona-forge/gacha.py +224 -0
- package/skills/openclaw-persona-forge/gacha.sh +5 -0
- package/skills/openclaw-persona-forge/references/avatar-style.md +124 -0
- package/skills/openclaw-persona-forge/references/boundary-rules.md +53 -0
- package/skills/openclaw-persona-forge/references/error-handling.md +53 -0
- package/skills/openclaw-persona-forge/references/identity-tension.md +48 -0
- package/skills/openclaw-persona-forge/references/naming-system.md +39 -0
- package/skills/openclaw-persona-forge/references/output-template.md +166 -0
- package/skills/opensource-pipeline/SKILL.md +255 -0
- package/skills/pencil-design/SKILL.md +175 -0
- package/skills/perl-patterns/SKILL.md +504 -0
- package/skills/perl-security/SKILL.md +503 -0
- package/skills/perl-testing/SKILL.md +475 -0
- package/skills/plankton-code-quality/SKILL.md +236 -0
- package/skills/postgres-patterns/SKILL.md +147 -0
- package/skills/product-capability/SKILL.md +141 -0
- package/skills/product-lens/SKILL.md +92 -0
- package/skills/production-scheduling/SKILL.md +238 -0
- package/skills/project-flow-ops/SKILL.md +111 -0
- package/skills/prompt-optimizer/SKILL.md +397 -0
- package/skills/python-patterns/SKILL.md +750 -0
- package/skills/python-testing/SKILL.md +816 -0
- package/skills/pytorch-patterns/SKILL.md +396 -0
- package/skills/quality-nonconformance/SKILL.md +260 -0
- package/skills/ralphinho-rfc-pipeline/SKILL.md +67 -0
- package/skills/regex-vs-llm-structured-text/SKILL.md +220 -0
- package/skills/remotion-video-creation/SKILL.md +43 -0
- package/skills/remotion-video-creation/rules/3d.md +86 -0
- package/skills/remotion-video-creation/rules/animations.md +29 -0
- package/skills/remotion-video-creation/rules/assets/charts-bar-chart.tsx +173 -0
- package/skills/remotion-video-creation/rules/assets/text-animations-typewriter.tsx +100 -0
- package/skills/remotion-video-creation/rules/assets/text-animations-word-highlight.tsx +108 -0
- package/skills/remotion-video-creation/rules/assets.md +78 -0
- package/skills/remotion-video-creation/rules/audio.md +172 -0
- package/skills/remotion-video-creation/rules/calculate-metadata.md +104 -0
- package/skills/remotion-video-creation/rules/can-decode.md +75 -0
- package/skills/remotion-video-creation/rules/charts.md +58 -0
- package/skills/remotion-video-creation/rules/compositions.md +146 -0
- package/skills/remotion-video-creation/rules/display-captions.md +126 -0
- package/skills/remotion-video-creation/rules/extract-frames.md +229 -0
- package/skills/remotion-video-creation/rules/fonts.md +152 -0
- package/skills/remotion-video-creation/rules/get-audio-duration.md +58 -0
- package/skills/remotion-video-creation/rules/get-video-dimensions.md +68 -0
- package/skills/remotion-video-creation/rules/get-video-duration.md +58 -0
- package/skills/remotion-video-creation/rules/gifs.md +138 -0
- package/skills/remotion-video-creation/rules/images.md +130 -0
- package/skills/remotion-video-creation/rules/import-srt-captions.md +67 -0
- package/skills/remotion-video-creation/rules/lottie.md +67 -0
- package/skills/remotion-video-creation/rules/measuring-dom-nodes.md +34 -0
- package/skills/remotion-video-creation/rules/measuring-text.md +143 -0
- package/skills/remotion-video-creation/rules/sequencing.md +106 -0
- package/skills/remotion-video-creation/rules/tailwind.md +11 -0
- package/skills/remotion-video-creation/rules/text-animations.md +20 -0
- package/skills/remotion-video-creation/rules/timing.md +179 -0
- package/skills/remotion-video-creation/rules/transcribe-captions.md +19 -0
- package/skills/remotion-video-creation/rules/transitions.md +122 -0
- package/skills/remotion-video-creation/rules/trimming.md +52 -0
- package/skills/remotion-video-creation/rules/videos.md +171 -0
- package/skills/repo-scan/SKILL.md +78 -0
- package/skills/research-ops/SKILL.md +112 -0
- package/skills/returns-reverse-logistics/SKILL.md +240 -0
- package/skills/rules-distill/SKILL.md +264 -0
- package/skills/rules-distill/scripts/scan-rules.sh +58 -0
- package/skills/rules-distill/scripts/scan-skills.sh +129 -0
- package/skills/rust-patterns/SKILL.md +499 -0
- package/skills/rust-testing/SKILL.md +500 -0
- package/skills/safety-guard/SKILL.md +75 -0
- package/skills/santa-method/SKILL.md +306 -0
- package/skills/search-first/SKILL.md +161 -0
- package/skills/security-bounty-hunter/SKILL.md +99 -0
- package/skills/security-review/SKILL.md +495 -0
- package/skills/security-review/cloud-infrastructure-security.md +361 -0
- package/skills/security-scan/SKILL.md +165 -0
- package/skills/seo/SKILL.md +154 -0
- package/skills/skill-comply/SKILL.md +58 -0
- package/skills/skill-comply/fixtures/compliant_trace.jsonl +5 -0
- package/skills/skill-comply/fixtures/noncompliant_trace.jsonl +3 -0
- package/skills/skill-comply/fixtures/tdd_spec.yaml +44 -0
- package/skills/skill-comply/prompts/classifier.md +24 -0
- package/skills/skill-comply/prompts/scenario_generator.md +62 -0
- package/skills/skill-comply/prompts/spec_generator.md +42 -0
- package/skills/skill-comply/pyproject.toml +15 -0
- package/skills/skill-comply/scripts/__init__.py +0 -0
- package/skills/skill-comply/scripts/classifier.py +85 -0
- package/skills/skill-comply/scripts/grader.py +122 -0
- package/skills/skill-comply/scripts/parser.py +107 -0
- package/skills/skill-comply/scripts/report.py +170 -0
- package/skills/skill-comply/scripts/run.py +127 -0
- package/skills/skill-comply/scripts/runner.py +161 -0
- package/skills/skill-comply/scripts/scenario_generator.py +70 -0
- package/skills/skill-comply/scripts/spec_generator.py +72 -0
- package/skills/skill-comply/scripts/utils.py +13 -0
- package/skills/skill-comply/tests/test_grader.py +137 -0
- package/skills/skill-comply/tests/test_parser.py +90 -0
- package/skills/skill-stocktake/SKILL.md +193 -0
- package/skills/skill-stocktake/scripts/quick-diff.sh +87 -0
- package/skills/skill-stocktake/scripts/save-results.sh +56 -0
- package/skills/skill-stocktake/scripts/scan.sh +170 -0
- package/skills/social-graph-ranker/SKILL.md +154 -0
- package/skills/springboot-patterns/SKILL.md +314 -0
- package/skills/springboot-security/SKILL.md +272 -0
- package/skills/springboot-tdd/SKILL.md +158 -0
- package/skills/springboot-verification/SKILL.md +231 -0
- package/skills/strategic-compact/SKILL.md +131 -0
- package/skills/strategic-compact/suggest-compact.sh +54 -0
- package/skills/swift-actor-persistence/SKILL.md +143 -0
- package/skills/swift-concurrency-6-2/SKILL.md +216 -0
- package/skills/swift-protocol-di-testing/SKILL.md +190 -0
- package/skills/swiftui-patterns/SKILL.md +259 -0
- package/skills/tdd-workflow/SKILL.md +463 -0
- package/skills/team-builder/SKILL.md +168 -0
- package/skills/terminal-ops/SKILL.md +109 -0
- package/skills/token-budget-advisor/SKILL.md +133 -0
- package/skills/ui-demo/SKILL.md +465 -0
- package/skills/unified-notifications-ops/SKILL.md +187 -0
- package/skills/verification-loop/SKILL.md +126 -0
- package/skills/video-editing/SKILL.md +310 -0
- package/skills/videodb/SKILL.md +374 -0
- package/skills/videodb/reference/api-reference.md +550 -0
- package/skills/videodb/reference/capture-reference.md +407 -0
- package/skills/videodb/reference/capture.md +101 -0
- package/skills/videodb/reference/editor.md +443 -0
- package/skills/videodb/reference/generative.md +331 -0
- package/skills/videodb/reference/rtstream-reference.md +564 -0
- package/skills/videodb/reference/rtstream.md +65 -0
- package/skills/videodb/reference/search.md +230 -0
- package/skills/videodb/reference/streaming.md +406 -0
- package/skills/videodb/reference/use-cases.md +118 -0
- package/skills/videodb/scripts/ws_listener.py +282 -0
- package/skills/visa-doc-translate/README.md +86 -0
- package/skills/visa-doc-translate/SKILL.md +117 -0
- package/skills/workspace-surface-audit/SKILL.md +125 -0
- package/skills/x-api/SKILL.md +230 -0
- package/tools/changed-files.ts +83 -0
- package/tools/check-coverage.ts +172 -0
- package/tools/format-code.ts +70 -0
- package/tools/git-summary.ts +56 -0
- package/tools/index.ts +14 -0
- package/tools/lint-check.ts +87 -0
- package/tools/run-tests.ts +141 -0
- package/tools/security-audit.ts +279 -0
package/AGENTS.md
ADDED
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
# SQUAD GSA — Agent Instructions
|
|
2
|
+
|
|
3
|
+
## Core Principles
|
|
4
|
+
|
|
5
|
+
1. **Agent-First** — Delegate to specialized agents for domain tasks
|
|
6
|
+
2. **Test-Driven** — Write tests before implementation, 80%+ coverage required
|
|
7
|
+
3. **Security-First** — Never compromise on security; validate all inputs
|
|
8
|
+
4. **Immutability** — Always create new objects, never mutate existing ones
|
|
9
|
+
5. **Plan Before Execute** — Plan complex features before writing code
|
|
10
|
+
|
|
11
|
+
## Available Agents
|
|
12
|
+
|
|
13
|
+
| Agent | Purpose | When to Use |
|
|
14
|
+
|-------|---------|-------------|
|
|
15
|
+
| planner | Implementation planning | Complex features, refactoring |
|
|
16
|
+
| architect | System design and scalability | Architectural decisions |
|
|
17
|
+
| tdd-guide | Test-driven development | New features, bug fixes |
|
|
18
|
+
| code-reviewer | Code quality and maintainability | After writing/modifying code |
|
|
19
|
+
| security-reviewer | Vulnerability detection | Before commits, sensitive code |
|
|
20
|
+
| build-error-resolver | Fix build/type errors | When build fails |
|
|
21
|
+
| e2e-runner | End-to-end Playwright testing | Critical user flows |
|
|
22
|
+
| refactor-cleaner | Dead code cleanup | Code maintenance |
|
|
23
|
+
| doc-updater | Documentation and codemaps | Updating docs |
|
|
24
|
+
| cpp-reviewer | C/C++ code review | C and C++ projects |
|
|
25
|
+
| cpp-build-resolver | C/C++ build errors | C and C++ build failures |
|
|
26
|
+
| docs-lookup | Documentation lookup via Context7 | API/docs questions |
|
|
27
|
+
| go-reviewer | Go code review | Go projects |
|
|
28
|
+
| go-build-resolver | Go build errors | Go build failures |
|
|
29
|
+
| kotlin-reviewer | Kotlin code review | Kotlin/Android/KMP projects |
|
|
30
|
+
| kotlin-build-resolver | Kotlin/Gradle build errors | Kotlin build failures |
|
|
31
|
+
| database-reviewer | PostgreSQL/Supabase specialist | Schema design, query optimization |
|
|
32
|
+
| python-reviewer | Python code review | Python projects |
|
|
33
|
+
| java-reviewer | Java and Spring Boot code review | Java/Spring Boot projects |
|
|
34
|
+
| java-build-resolver | Java/Maven/Gradle build errors | Java build failures |
|
|
35
|
+
| loop-operator | Autonomous loop execution | Run loops safely, monitor stalls, intervene |
|
|
36
|
+
| harness-optimizer | Harness config tuning | Reliability, cost, throughput |
|
|
37
|
+
| rust-reviewer | Rust code review | Rust projects |
|
|
38
|
+
| rust-build-resolver | Rust build errors | Rust build failures |
|
|
39
|
+
| pytorch-build-resolver | PyTorch runtime/CUDA/training errors | PyTorch build/training failures |
|
|
40
|
+
| typescript-reviewer | TypeScript/JavaScript code review | TypeScript/JavaScript projects |
|
|
41
|
+
|
|
42
|
+
## Agent Orchestration
|
|
43
|
+
|
|
44
|
+
Use agents proactively without user prompt:
|
|
45
|
+
- Complex feature requests → **planner**
|
|
46
|
+
- Code just written/modified → **code-reviewer**
|
|
47
|
+
- Bug fix or new feature → **tdd-guide**
|
|
48
|
+
- Architectural decision → **architect**
|
|
49
|
+
- Security-sensitive code → **security-reviewer**
|
|
50
|
+
- Autonomous loops / loop monitoring → **loop-operator**
|
|
51
|
+
- Harness config reliability and cost → **harness-optimizer**
|
|
52
|
+
|
|
53
|
+
Use parallel execution for independent operations — launch multiple agents simultaneously.
|
|
54
|
+
|
|
55
|
+
## Security Guidelines
|
|
56
|
+
|
|
57
|
+
**Before ANY commit:**
|
|
58
|
+
- No hardcoded secrets (API keys, passwords, tokens)
|
|
59
|
+
- All user inputs validated
|
|
60
|
+
- SQL injection prevention (parameterized queries)
|
|
61
|
+
- XSS prevention (sanitized HTML)
|
|
62
|
+
- CSRF protection enabled
|
|
63
|
+
- Authentication/authorization verified
|
|
64
|
+
- Rate limiting on all endpoints
|
|
65
|
+
- Error messages don't leak sensitive data
|
|
66
|
+
|
|
67
|
+
**Secret management:** NEVER hardcode secrets. Use environment variables or a secret manager. Validate required secrets at startup. Rotate any exposed secrets immediately.
|
|
68
|
+
|
|
69
|
+
**If security issue found:** STOP → use security-reviewer agent → fix CRITICAL issues → rotate exposed secrets → review codebase for similar issues.
|
|
70
|
+
|
|
71
|
+
## Coding Style
|
|
72
|
+
|
|
73
|
+
**Immutability (CRITICAL):** Always create new objects, never mutate. Return new copies with changes applied.
|
|
74
|
+
|
|
75
|
+
**File organization:** Many small files over few large ones. 200-400 lines typical, 800 max. Organize by feature/domain, not by type. High cohesion, low coupling.
|
|
76
|
+
|
|
77
|
+
**Error handling:** Handle errors at every level. Provide user-friendly messages in UI code. Log detailed context server-side. Never silently swallow errors.
|
|
78
|
+
|
|
79
|
+
**Input validation:** Validate all user input at system boundaries. Use schema-based validation. Fail fast with clear messages. Never trust external data.
|
|
80
|
+
|
|
81
|
+
**Code quality checklist:**
|
|
82
|
+
- Functions small (<50 lines), files focused (<800 lines)
|
|
83
|
+
- No deep nesting (>4 levels)
|
|
84
|
+
- Proper error handling, no hardcoded values
|
|
85
|
+
- Readable, well-named identifiers
|
|
86
|
+
|
|
87
|
+
## Testing Requirements
|
|
88
|
+
|
|
89
|
+
**Minimum coverage: 80%**
|
|
90
|
+
|
|
91
|
+
Test types (all required):
|
|
92
|
+
1. **Unit tests** — Individual functions, utilities, components
|
|
93
|
+
2. **Integration tests** — API endpoints, database operations
|
|
94
|
+
3. **E2E tests** — Critical user flows
|
|
95
|
+
|
|
96
|
+
**TDD workflow (mandatory):**
|
|
97
|
+
1. Write test first (RED) — test should FAIL
|
|
98
|
+
2. Write minimal implementation (GREEN) — test should PASS
|
|
99
|
+
3. Refactor (IMPROVE) — verify coverage 80%+
|
|
100
|
+
|
|
101
|
+
Troubleshoot failures: check test isolation → verify mocks → fix implementation (not tests, unless tests are wrong).
|
|
102
|
+
|
|
103
|
+
## Development Workflow
|
|
104
|
+
|
|
105
|
+
1. **Plan** — Use planner agent, identify dependencies and risks, break into phases
|
|
106
|
+
2. **TDD** — Use tdd-guide agent, write tests first, implement, refactor
|
|
107
|
+
3. **Review** — Use code-reviewer agent immediately, address CRITICAL/HIGH issues
|
|
108
|
+
4. **Capture knowledge in the right place**
|
|
109
|
+
- Personal debugging notes, preferences, and temporary context → auto memory
|
|
110
|
+
- Team/project knowledge (architecture decisions, API changes, runbooks) → the project's existing docs structure
|
|
111
|
+
- If the current task already produces the relevant docs or code comments, do not duplicate the same information elsewhere
|
|
112
|
+
- If there is no obvious project doc location, ask before creating a new top-level file
|
|
113
|
+
5. **Commit** — Conventional commits format, comprehensive PR summaries
|
|
114
|
+
|
|
115
|
+
## Workflow Surface Policy
|
|
116
|
+
|
|
117
|
+
- `skills/` is the canonical workflow surface.
|
|
118
|
+
- New workflow contributions should land in `skills/` first.
|
|
119
|
+
- `commands/` is a legacy slash-entry compatibility surface and should only be added or updated when a shim is still required for migration or cross-harness parity.
|
|
120
|
+
|
|
121
|
+
## Git Workflow
|
|
122
|
+
|
|
123
|
+
**Commit format:** `<type>: <description>` — Types: feat, fix, refactor, docs, test, chore, perf, ci
|
|
124
|
+
|
|
125
|
+
**PR workflow:** Analyze full commit history → draft comprehensive summary → include test plan → push with `-u` flag.
|
|
126
|
+
|
|
127
|
+
## Architecture Patterns
|
|
128
|
+
|
|
129
|
+
**API response format:** Consistent envelope with success indicator, data payload, error message, and pagination metadata.
|
|
130
|
+
|
|
131
|
+
**Repository pattern:** Encapsulate data access behind standard interface (findAll, findById, create, update, delete). Business logic depends on abstract interface, not storage mechanism.
|
|
132
|
+
|
|
133
|
+
**Skeleton projects:** Search for battle-tested templates, evaluate with parallel agents (security, extensibility, relevance), clone best match, iterate within proven structure.
|
|
134
|
+
|
|
135
|
+
## Performance
|
|
136
|
+
|
|
137
|
+
**Context management:** Avoid last 20% of context window for large refactoring and multi-file features. Lower-sensitivity tasks (single edits, docs, simple fixes) tolerate higher utilization.
|
|
138
|
+
|
|
139
|
+
**Build troubleshooting:** Use build-error-resolver agent → analyze errors → fix incrementally → verify after each fix.
|
|
140
|
+
|
|
141
|
+
## Project Structure
|
|
142
|
+
|
|
143
|
+
```
|
|
144
|
+
agents/ — 47 specialized subagents
|
|
145
|
+
skills/ — 181 workflow skills and domain knowledge
|
|
146
|
+
commands/ — 79 slash commands
|
|
147
|
+
hooks/ — Trigger-based automations
|
|
148
|
+
rules/ — Always-follow guidelines (common + per-language)
|
|
149
|
+
scripts/ — Cross-platform Node.js utilities
|
|
150
|
+
mcp-configs/ — 14 MCP server configurations
|
|
151
|
+
tests/ — Test suite
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
`commands/` remains in the repo for compatibility, but the long-term direction is skills-first.
|
|
155
|
+
|
|
156
|
+
## Success Metrics
|
|
157
|
+
|
|
158
|
+
- All tests pass with 80%+ coverage
|
|
159
|
+
- No security vulnerabilities
|
|
160
|
+
- Code is readable and maintainable
|
|
161
|
+
- Performance is acceptable
|
|
162
|
+
- User requirements are met
|
package/MIGRATION.md
ADDED
|
@@ -0,0 +1,368 @@
|
|
|
1
|
+
# Migration Guide: Claude Code to OpenCode
|
|
2
|
+
|
|
3
|
+
This guide helps you migrate from Claude Code to OpenCode while using the Everything Claude Code (ECC) configuration.
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
OpenCode is an alternative CLI for AI-assisted development that supports **all** the same features as Claude Code, with some differences in configuration format.
|
|
8
|
+
|
|
9
|
+
## Key Differences
|
|
10
|
+
|
|
11
|
+
| Feature | Claude Code | OpenCode | Notes |
|
|
12
|
+
|---------|-------------|----------|-------|
|
|
13
|
+
| Configuration | `CLAUDE.md`, `plugin.json` | `opencode.json` | Different file formats |
|
|
14
|
+
| Agents | Markdown frontmatter | JSON object | Full parity |
|
|
15
|
+
| Commands | `commands/*.md` | `command` object or `.md` files | Full parity |
|
|
16
|
+
| Skills | `skills/*/SKILL.md` | `instructions` array | Loaded as context |
|
|
17
|
+
| **Hooks** | `hooks.json` (3 phases) | **Plugin system (20+ events)** | **Full parity + more!** |
|
|
18
|
+
| Rules | `rules/*.md` | `instructions` array | Consolidated or separate |
|
|
19
|
+
| MCP | Full support | Full support | Full parity |
|
|
20
|
+
|
|
21
|
+
## Hook Migration
|
|
22
|
+
|
|
23
|
+
**OpenCode fully supports hooks** via its plugin system, which is actually MORE sophisticated than Claude Code with 20+ event types.
|
|
24
|
+
|
|
25
|
+
### Hook Event Mapping
|
|
26
|
+
|
|
27
|
+
| Claude Code Hook | OpenCode Plugin Event | Notes |
|
|
28
|
+
|-----------------|----------------------|-------|
|
|
29
|
+
| `PreToolUse` | `tool.execute.before` | Can modify tool input |
|
|
30
|
+
| `PostToolUse` | `tool.execute.after` | Can modify tool output |
|
|
31
|
+
| `Stop` | `session.idle` or `session.status` | Session lifecycle |
|
|
32
|
+
| `SessionStart` | `session.created` | Session begins |
|
|
33
|
+
| `SessionEnd` | `session.deleted` | Session ends |
|
|
34
|
+
| N/A | `file.edited` | OpenCode-only: file changes |
|
|
35
|
+
| N/A | `file.watcher.updated` | OpenCode-only: file system watch |
|
|
36
|
+
| N/A | `message.updated` | OpenCode-only: message changes |
|
|
37
|
+
| N/A | `lsp.client.diagnostics` | OpenCode-only: LSP integration |
|
|
38
|
+
| N/A | `tui.toast.show` | OpenCode-only: notifications |
|
|
39
|
+
|
|
40
|
+
### Converting Hooks to Plugins
|
|
41
|
+
|
|
42
|
+
**Claude Code hook (hooks.json):**
|
|
43
|
+
```json
|
|
44
|
+
{
|
|
45
|
+
"PostToolUse": [{
|
|
46
|
+
"matcher": "tool == \"Edit\" && tool_input.file_path matches \"\\\\.(ts|tsx|js|jsx)$\"",
|
|
47
|
+
"hooks": [{
|
|
48
|
+
"type": "command",
|
|
49
|
+
"command": "prettier --write \"$file_path\""
|
|
50
|
+
}]
|
|
51
|
+
}]
|
|
52
|
+
}
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
**OpenCode plugin (.opencode/plugins/prettier-hook.ts):**
|
|
56
|
+
```typescript
|
|
57
|
+
export const PrettierPlugin = async ({ $ }) => {
|
|
58
|
+
return {
|
|
59
|
+
"file.edited": async (event) => {
|
|
60
|
+
if (event.path.match(/\.(ts|tsx|js|jsx)$/)) {
|
|
61
|
+
await $`prettier --write ${event.path}`
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### ECC Plugin Hooks Included
|
|
69
|
+
|
|
70
|
+
The ECC OpenCode configuration includes translated hooks:
|
|
71
|
+
|
|
72
|
+
| Hook | OpenCode Event | Purpose |
|
|
73
|
+
|------|----------------|---------|
|
|
74
|
+
| Prettier auto-format | `file.edited` | Format JS/TS files after edit |
|
|
75
|
+
| TypeScript check | `tool.execute.after` | Run tsc after editing .ts files |
|
|
76
|
+
| console.log warning | `file.edited` | Warn about console.log statements |
|
|
77
|
+
| Session notification | `session.idle` | Notify when task completes |
|
|
78
|
+
| Security check | `tool.execute.before` | Check for secrets before commit |
|
|
79
|
+
|
|
80
|
+
## Migration Steps
|
|
81
|
+
|
|
82
|
+
### 1. Install OpenCode
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
# Install OpenCode CLI
|
|
86
|
+
npm install -g opencode
|
|
87
|
+
# or
|
|
88
|
+
curl -fsSL https://opencode.ai/install | bash
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### 2. Use the ECC OpenCode Configuration
|
|
92
|
+
|
|
93
|
+
The `.opencode/` directory in this repository contains the translated configuration:
|
|
94
|
+
|
|
95
|
+
```
|
|
96
|
+
.opencode/
|
|
97
|
+
├── opencode.json # Main configuration
|
|
98
|
+
├── plugins/ # Hook plugins (translated from hooks.json)
|
|
99
|
+
│ ├── ecc-hooks.ts # All ECC hooks as plugins
|
|
100
|
+
│ └── index.ts # Plugin exports
|
|
101
|
+
├── tools/ # Custom tools
|
|
102
|
+
│ ├── run-tests.ts # Run test suite
|
|
103
|
+
│ ├── check-coverage.ts # Check coverage
|
|
104
|
+
│ └── security-audit.ts # npm audit wrapper
|
|
105
|
+
├── commands/ # All 23 commands (markdown)
|
|
106
|
+
│ ├── plan.md
|
|
107
|
+
│ ├── tdd.md
|
|
108
|
+
│ └── ... (21 more)
|
|
109
|
+
├── prompts/
|
|
110
|
+
│ └── agents/ # Agent prompt files (12)
|
|
111
|
+
├── instructions/
|
|
112
|
+
│ └── INSTRUCTIONS.md # Consolidated rules
|
|
113
|
+
├── package.json # For npm distribution
|
|
114
|
+
├── tsconfig.json # TypeScript config
|
|
115
|
+
└── MIGRATION.md # This file
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
### 3. Run OpenCode
|
|
119
|
+
|
|
120
|
+
```bash
|
|
121
|
+
# In the repository root
|
|
122
|
+
opencode
|
|
123
|
+
|
|
124
|
+
# The configuration is automatically detected from .opencode/opencode.json
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
## Concept Mapping
|
|
128
|
+
|
|
129
|
+
### Agents
|
|
130
|
+
|
|
131
|
+
**Claude Code:**
|
|
132
|
+
```markdown
|
|
133
|
+
---
|
|
134
|
+
name: planner
|
|
135
|
+
description: Expert planning specialist...
|
|
136
|
+
tools: ["Read", "Grep", "Glob"]
|
|
137
|
+
model: opus
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
You are an expert planning specialist...
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
**OpenCode:**
|
|
144
|
+
```json
|
|
145
|
+
{
|
|
146
|
+
"agent": {
|
|
147
|
+
"planner": {
|
|
148
|
+
"description": "Expert planning specialist...",
|
|
149
|
+
"mode": "subagent",
|
|
150
|
+
"model": "anthropic/claude-opus-4-5",
|
|
151
|
+
"prompt": "{file:prompts/agents/planner.txt}",
|
|
152
|
+
"tools": { "read": true, "bash": true }
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
### Commands
|
|
159
|
+
|
|
160
|
+
**Claude Code:**
|
|
161
|
+
```markdown
|
|
162
|
+
---
|
|
163
|
+
name: plan
|
|
164
|
+
description: Create implementation plan
|
|
165
|
+
---
|
|
166
|
+
|
|
167
|
+
Create a detailed implementation plan for: {input}
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
**OpenCode (JSON):**
|
|
171
|
+
```json
|
|
172
|
+
{
|
|
173
|
+
"command": {
|
|
174
|
+
"plan": {
|
|
175
|
+
"description": "Create implementation plan",
|
|
176
|
+
"template": "Create a detailed implementation plan for: $ARGUMENTS",
|
|
177
|
+
"agent": "planner"
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
**OpenCode (Markdown - .opencode/commands/plan.md):**
|
|
184
|
+
```markdown
|
|
185
|
+
---
|
|
186
|
+
description: Create implementation plan
|
|
187
|
+
agent: everything-claude-code:planner
|
|
188
|
+
---
|
|
189
|
+
|
|
190
|
+
Create a detailed implementation plan for: $ARGUMENTS
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
### Skills
|
|
194
|
+
|
|
195
|
+
**Claude Code:** Skills are loaded from `skills/*/SKILL.md` files.
|
|
196
|
+
|
|
197
|
+
**OpenCode:** Skills are added to the `instructions` array:
|
|
198
|
+
```json
|
|
199
|
+
{
|
|
200
|
+
"instructions": [
|
|
201
|
+
"skills/tdd-workflow/SKILL.md",
|
|
202
|
+
"skills/security-review/SKILL.md",
|
|
203
|
+
"skills/coding-standards/SKILL.md"
|
|
204
|
+
]
|
|
205
|
+
}
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
### Rules
|
|
209
|
+
|
|
210
|
+
**Claude Code:** Rules are in separate `rules/*.md` files.
|
|
211
|
+
|
|
212
|
+
**OpenCode:** Rules can be consolidated into `instructions` or kept separate:
|
|
213
|
+
```json
|
|
214
|
+
{
|
|
215
|
+
"instructions": [
|
|
216
|
+
"instructions/INSTRUCTIONS.md",
|
|
217
|
+
"rules/common/security.md",
|
|
218
|
+
"rules/common/coding-style.md"
|
|
219
|
+
]
|
|
220
|
+
}
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
## Model Mapping
|
|
224
|
+
|
|
225
|
+
| Claude Code | OpenCode |
|
|
226
|
+
|-------------|----------|
|
|
227
|
+
| `opus` | `anthropic/claude-opus-4-5` |
|
|
228
|
+
| `sonnet` | `anthropic/claude-sonnet-4-5` |
|
|
229
|
+
| `haiku` | `anthropic/claude-haiku-4-5` |
|
|
230
|
+
|
|
231
|
+
## Available Commands
|
|
232
|
+
|
|
233
|
+
After migration, ALL 23 commands are available:
|
|
234
|
+
|
|
235
|
+
| Command | Description |
|
|
236
|
+
|---------|-------------|
|
|
237
|
+
| `/plan` | Create implementation plan |
|
|
238
|
+
| `/tdd` | Enforce TDD workflow |
|
|
239
|
+
| `/code-review` | Review code changes |
|
|
240
|
+
| `/security` | Run security review |
|
|
241
|
+
| `/build-fix` | Fix build errors |
|
|
242
|
+
| `/e2e` | Generate E2E tests |
|
|
243
|
+
| `/refactor-clean` | Remove dead code |
|
|
244
|
+
| `/orchestrate` | Multi-agent workflow |
|
|
245
|
+
| `/learn` | Extract patterns mid-session |
|
|
246
|
+
| `/checkpoint` | Save verification state |
|
|
247
|
+
| `/verify` | Run verification loop |
|
|
248
|
+
| `/eval` | Run evaluation |
|
|
249
|
+
| `/update-docs` | Update documentation |
|
|
250
|
+
| `/update-codemaps` | Update codemaps |
|
|
251
|
+
| `/test-coverage` | Check test coverage |
|
|
252
|
+
| `/setup-pm` | Configure package manager |
|
|
253
|
+
| `/go-review` | Go code review |
|
|
254
|
+
| `/go-test` | Go TDD workflow |
|
|
255
|
+
| `/go-build` | Fix Go build errors |
|
|
256
|
+
| `/skill-create` | Generate skills from git history |
|
|
257
|
+
| `/instinct-status` | View learned instincts |
|
|
258
|
+
| `/instinct-import` | Import instincts |
|
|
259
|
+
| `/instinct-export` | Export instincts |
|
|
260
|
+
| `/evolve` | Cluster instincts into skills |
|
|
261
|
+
| `/promote` | Promote project instincts to global scope |
|
|
262
|
+
| `/projects` | List known projects and instinct stats |
|
|
263
|
+
|
|
264
|
+
## Available Agents
|
|
265
|
+
|
|
266
|
+
| Agent | Description |
|
|
267
|
+
|-------|-------------|
|
|
268
|
+
| `planner` | Implementation planning |
|
|
269
|
+
| `architect` | System design |
|
|
270
|
+
| `code-reviewer` | Code review |
|
|
271
|
+
| `security-reviewer` | Security analysis |
|
|
272
|
+
| `tdd-guide` | Test-driven development |
|
|
273
|
+
| `build-error-resolver` | Fix build errors |
|
|
274
|
+
| `e2e-runner` | E2E testing |
|
|
275
|
+
| `doc-updater` | Documentation |
|
|
276
|
+
| `refactor-cleaner` | Dead code cleanup |
|
|
277
|
+
| `go-reviewer` | Go code review |
|
|
278
|
+
| `go-build-resolver` | Go build errors |
|
|
279
|
+
| `database-reviewer` | Database optimization |
|
|
280
|
+
|
|
281
|
+
## Plugin Installation
|
|
282
|
+
|
|
283
|
+
### Option 1: Use ECC Configuration Directly
|
|
284
|
+
|
|
285
|
+
The `.opencode/` directory contains everything pre-configured.
|
|
286
|
+
|
|
287
|
+
### Option 2: Install as npm Package
|
|
288
|
+
|
|
289
|
+
```bash
|
|
290
|
+
npm install ecc-universal
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
Then in your `opencode.json`:
|
|
294
|
+
```json
|
|
295
|
+
{
|
|
296
|
+
"plugin": ["ecc-universal"]
|
|
297
|
+
}
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
This only loads the published ECC OpenCode plugin module (hooks/events and exported plugin tools).
|
|
301
|
+
It does **not** automatically inject ECC's full `agent`, `command`, or `instructions` config into your project.
|
|
302
|
+
|
|
303
|
+
If you want the full ECC OpenCode workflow surface, use the repository's bundled `.opencode/opencode.json` as your base config or copy these pieces into your project:
|
|
304
|
+
- `.opencode/commands/`
|
|
305
|
+
- `.opencode/prompts/`
|
|
306
|
+
- `.opencode/instructions/INSTRUCTIONS.md`
|
|
307
|
+
- the `agent` and `command` sections from `.opencode/opencode.json`
|
|
308
|
+
|
|
309
|
+
## Troubleshooting
|
|
310
|
+
|
|
311
|
+
### Configuration Not Loading
|
|
312
|
+
|
|
313
|
+
1. Verify `.opencode/opencode.json` exists in the repository root
|
|
314
|
+
2. Check JSON syntax is valid: `cat .opencode/opencode.json | jq .`
|
|
315
|
+
3. Ensure all referenced prompt files exist
|
|
316
|
+
|
|
317
|
+
### Plugin Not Loading
|
|
318
|
+
|
|
319
|
+
1. Verify plugin file exists in `.opencode/plugins/`
|
|
320
|
+
2. Check TypeScript syntax is valid
|
|
321
|
+
3. Ensure `plugin` array in `opencode.json` includes the path
|
|
322
|
+
|
|
323
|
+
### Agent Not Found
|
|
324
|
+
|
|
325
|
+
1. Check the agent is defined in `opencode.json` under the `agent` object
|
|
326
|
+
2. Verify the prompt file path is correct
|
|
327
|
+
3. Ensure the prompt file exists at the specified path
|
|
328
|
+
|
|
329
|
+
### Command Not Working
|
|
330
|
+
|
|
331
|
+
1. Verify the command is defined in `opencode.json` or as `.md` file in `.opencode/commands/`
|
|
332
|
+
2. Check the referenced agent exists
|
|
333
|
+
3. Ensure the template uses `$ARGUMENTS` for user input
|
|
334
|
+
4. If you installed only `plugin: ["ecc-universal"]`, note that npm plugin install does not auto-add ECC commands or agents to your project config
|
|
335
|
+
|
|
336
|
+
## Best Practices
|
|
337
|
+
|
|
338
|
+
1. **Start Fresh**: Don't try to run both Claude Code and OpenCode simultaneously
|
|
339
|
+
2. **Check Configuration**: Verify `opencode.json` loads without errors
|
|
340
|
+
3. **Test Commands**: Run each command once to verify it works
|
|
341
|
+
4. **Use Plugins**: Leverage the plugin hooks for automation
|
|
342
|
+
5. **Use Agents**: Leverage the specialized agents for their intended purposes
|
|
343
|
+
|
|
344
|
+
## Reverting to Claude Code
|
|
345
|
+
|
|
346
|
+
If you need to switch back:
|
|
347
|
+
|
|
348
|
+
1. Simply run `claude` instead of `opencode`
|
|
349
|
+
2. Claude Code will use its own configuration (`CLAUDE.md`, `plugin.json`, etc.)
|
|
350
|
+
3. The `.opencode/` directory won't interfere with Claude Code
|
|
351
|
+
|
|
352
|
+
## Feature Parity Summary
|
|
353
|
+
|
|
354
|
+
| Feature | Claude Code | OpenCode | Status |
|
|
355
|
+
|---------|-------------|----------|--------|
|
|
356
|
+
| Agents | PASS: 12 agents | PASS: 12 agents | **Full parity** |
|
|
357
|
+
| Commands | PASS: 23 commands | PASS: 23 commands | **Full parity** |
|
|
358
|
+
| Skills | PASS: 16 skills | PASS: 16 skills | **Full parity** |
|
|
359
|
+
| Hooks | PASS: 3 phases | PASS: 20+ events | **OpenCode has MORE** |
|
|
360
|
+
| Rules | PASS: 8 rules | PASS: 8 rules | **Full parity** |
|
|
361
|
+
| MCP Servers | PASS: Full | PASS: Full | **Full parity** |
|
|
362
|
+
| Custom Tools | PASS: Via hooks | PASS: Native support | **OpenCode is better** |
|
|
363
|
+
|
|
364
|
+
## Feedback
|
|
365
|
+
|
|
366
|
+
For issues specific to:
|
|
367
|
+
- **OpenCode CLI**: Report to OpenCode's issue tracker
|
|
368
|
+
- **ECC Configuration**: Report to [github.com/affaan-m/everything-claude-code](https://github.com/affaan-m/everything-claude-code)
|
package/README.md
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# @squad/vibes
|
|
2
|
+
|
|
3
|
+
Bootstrap OpenCode assets into `~/.config/opencode` on Ubuntu/Linux.
|
|
4
|
+
|
|
5
|
+
## What `npm install @squad/vibes` does
|
|
6
|
+
|
|
7
|
+
During `postinstall`, the package runs `bin/setup.js` and copies these paths into `~/.config/opencode`:
|
|
8
|
+
|
|
9
|
+
- `commands/`
|
|
10
|
+
- `instructions/`
|
|
11
|
+
- `prompts/agents/`
|
|
12
|
+
- `skills/`
|
|
13
|
+
- `tools/`
|
|
14
|
+
- `AGENTS.md`
|
|
15
|
+
- `bin/`
|
|
16
|
+
- `MIGRATION.md`
|
|
17
|
+
- `opencode.json`
|
|
18
|
+
- `README.md`
|
|
19
|
+
|
|
20
|
+
It also ensures this line exists in both `~/.bashrc` and `~/.zshrc`:
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
export AZURE_RESOURCE_NAME='squadtreinamento'
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
After install, run one of:
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
source ~/.bashrc
|
|
30
|
+
source ~/.zshrc
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Manual rerun
|
|
34
|
+
|
|
35
|
+
You can rerun setup at any time with:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
npx vibes-setup
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Notes
|
|
42
|
+
|
|
43
|
+
- The bootstrap script is Linux-only (`process.platform === "linux"`).
|
|
44
|
+
- Existing files in `~/.config/opencode` are overwritten for copied paths.
|
package/bin/setup.js
ADDED
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
const fs = require("fs")
|
|
4
|
+
const path = require("path")
|
|
5
|
+
const os = require("os")
|
|
6
|
+
|
|
7
|
+
const PACKAGE_ROOT = path.resolve(__dirname, "..")
|
|
8
|
+
const TARGET_DIR = path.join(os.homedir(), ".config", "opencode")
|
|
9
|
+
const ENV_LINE = "export AZURE_RESOURCE_NAME='squadtreinamento'"
|
|
10
|
+
const LEGACY_ENV_LINE = "export AZURE_RESOURCH_NAME='squadtreinamento'"
|
|
11
|
+
|
|
12
|
+
const PATHS_TO_COPY = [
|
|
13
|
+
"commands",
|
|
14
|
+
"instructions",
|
|
15
|
+
path.join("prompts", "agents"),
|
|
16
|
+
"skills",
|
|
17
|
+
"tools",
|
|
18
|
+
"AGENTS.md",
|
|
19
|
+
"bin",
|
|
20
|
+
"MIGRATION.md",
|
|
21
|
+
"opencode.json",
|
|
22
|
+
"README.md",
|
|
23
|
+
]
|
|
24
|
+
|
|
25
|
+
function ensureDirectory(dirPath) {
|
|
26
|
+
fs.mkdirSync(dirPath, { recursive: true })
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
function copyPath(relativePath) {
|
|
30
|
+
const sourcePath = path.join(PACKAGE_ROOT, relativePath)
|
|
31
|
+
const targetPath = path.join(TARGET_DIR, relativePath)
|
|
32
|
+
|
|
33
|
+
if (!fs.existsSync(sourcePath)) {
|
|
34
|
+
console.warn(`[vibes-setup] Skipping missing path: ${relativePath}`)
|
|
35
|
+
return
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
ensureDirectory(path.dirname(targetPath))
|
|
39
|
+
fs.cpSync(sourcePath, targetPath, { recursive: true, force: true })
|
|
40
|
+
console.log(`[vibes-setup] Copied: ${relativePath}`)
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
function ensureExportLine(shellRcPath) {
|
|
44
|
+
let current = ""
|
|
45
|
+
if (fs.existsSync(shellRcPath)) {
|
|
46
|
+
current = fs.readFileSync(shellRcPath, "utf8")
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
if (current.includes(ENV_LINE)) {
|
|
50
|
+
return "already"
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
if (current.includes(LEGACY_ENV_LINE)) {
|
|
54
|
+
const migrated = current.split(LEGACY_ENV_LINE).join(ENV_LINE)
|
|
55
|
+
fs.writeFileSync(shellRcPath, migrated, "utf8")
|
|
56
|
+
return "migrated"
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
const prefix = current.length > 0 && !current.endsWith("\n") ? "\n" : ""
|
|
60
|
+
const next = `${current}${prefix}${ENV_LINE}\n`
|
|
61
|
+
fs.writeFileSync(shellRcPath, next, "utf8")
|
|
62
|
+
return "added"
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
function ensureShellExports() {
|
|
66
|
+
const rcFiles = [
|
|
67
|
+
path.join(os.homedir(), ".bashrc"),
|
|
68
|
+
path.join(os.homedir(), ".zshrc"),
|
|
69
|
+
]
|
|
70
|
+
|
|
71
|
+
const added = []
|
|
72
|
+
const migrated = []
|
|
73
|
+
const alreadyPresent = []
|
|
74
|
+
|
|
75
|
+
for (const rcFile of rcFiles) {
|
|
76
|
+
const status = ensureExportLine(rcFile)
|
|
77
|
+
if (status === "added") {
|
|
78
|
+
added.push(rcFile)
|
|
79
|
+
} else if (status === "migrated") {
|
|
80
|
+
migrated.push(rcFile)
|
|
81
|
+
} else {
|
|
82
|
+
alreadyPresent.push(rcFile)
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
return { added, migrated, alreadyPresent }
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
function install() {
|
|
90
|
+
if (process.platform !== "linux") {
|
|
91
|
+
console.log("[vibes-setup] Non-Linux platform detected. Skipping bootstrap.")
|
|
92
|
+
return
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
ensureDirectory(TARGET_DIR)
|
|
96
|
+
|
|
97
|
+
for (const relativePath of PATHS_TO_COPY) {
|
|
98
|
+
copyPath(relativePath)
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
const shellUpdate = ensureShellExports()
|
|
102
|
+
|
|
103
|
+
for (const rcFile of shellUpdate.added) {
|
|
104
|
+
console.log(`[vibes-setup] Added variable to ${rcFile}`)
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
for (const rcFile of shellUpdate.migrated) {
|
|
108
|
+
console.log(`[vibes-setup] Migrated variable name in ${rcFile}`)
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
for (const rcFile of shellUpdate.alreadyPresent) {
|
|
112
|
+
console.log(`[vibes-setup] Environment variable already present in ${rcFile}`)
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
if (shellUpdate.added.length > 0 || shellUpdate.migrated.length > 0) {
|
|
116
|
+
console.log("[vibes-setup] Run: source ~/.bashrc or source ~/.zshrc")
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
console.log(`[vibes-setup] Bootstrap finished in: ${TARGET_DIR}`)
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
try {
|
|
123
|
+
install()
|
|
124
|
+
} catch (error) {
|
|
125
|
+
console.error("[vibes-setup] Setup failed:", error)
|
|
126
|
+
process.exitCode = 1
|
|
127
|
+
}
|