Keep the capability small: agent guidance, human approval, native skills. Read AGENTS.md and docs/research.md before changing the runtime. Do not add independent persistence, autonomous writes, or cleanup infrastructure.
Requires Node.js 24+ and npm. OpenCode 1.18.30 is required for live CLI tests.
git clone https://github.com/Neverdecel/opencode-guided-learning.git
cd opencode-guided-learning
npm ci
npm run check
npm testGitHub Actions runs the same deterministic checks. They cover hook registration, isolation, options, and bundled skill format. They do not certify model consent or secret detection.
- Branch from
main. Direct pushes, force-pushes, and deletingmainare blocked. - Keep the change focused. Update docs and examples with options or behavior.
- Inspect pinned
@opencode-ai/pluginand SDK types before changing hooks. - Open a PR targeting
main. ThecheckCI job must pass. - Squash or rebase merge only (linear history).
Ship product skills under skills/ and load them via skills.paths. Keep
examples outside auto-discovery directories. Do not copy product skills into
another project’s .opencode/skills/ in docs or tests unless the point is a
fork.
Linux, Docker, and a native OpenCode binary. From the checkout root:
# Actual OpenCode system request and persisted-session isolation; fake provider.
EVAL_SCRIPT=context sh test/live.sh
# Real model, native file tools, disposable skill libraries.
sh test/live.sh
EVAL_CASE=4 sh test/live.sh
EVAL_MODEL=opencode/mimo-v2.5-free EVAL_CASE=4 sh test/live.shThe scripts mount the checkout and CLI read-only in a disposable container.
They do not mount a real home or credentials. Default live model:
opencode/big-pickle (provider-dependent). The noninteractive runner uses
text replies and disables the question tool. These tests are opt-in, not CI.
Review tool traces and generated prose, not only exit status. No-write cases fail on attempted skill/config writes, including blocked tool calls. Keyword checks are smoke only. Acceptance criteria: test/SCENARIOS.md. Record intermittent failures; a later pass does not erase them. Never run evaluation writes against a real skill library.
Package, repo, and plugin id are opencode-guided-learning. Publish with a
v* tag or workflow_dispatch on .github/workflows/publish.yml; it needs
the NPM_TOKEN secret. Do not npm publish from a laptop. Bump
package.json version before tagging.
Include OpenCode and model versions and a minimal, sanitized reproduction. Do not upload configuration secrets, credentials, or private session exports. Security reports go through SECURITY.md, not public issues.