b9039f577e
Validate / base-change-warning (push) Successful in 14s
Publish Docker Image / resolve-versions (push) Successful in 9s
Publish Docker Image / base-decide (push) Successful in 13s
Validate / validate-base (push) Failing after 3m26s
Validate / validate-omos (push) Failing after 4m28s
Publish Docker Image / build-base (push) Successful in 37m26s
Publish Docker Image / smoke-omos (push) Successful in 4m36s
Publish Docker Image / smoke-base (push) Successful in 7m41s
Publish Docker Image / build-variant-base (push) Successful in 13m47s
Publish Docker Image / build-variant-omos (push) Successful in 19m24s
Publish Docker Image / promote-base-latest (push) Successful in 8s
Validate / docs-check (push) Successful in 6s
Publish Docker Image / update-description (push) Successful in 9s
- Add image-baked fallback skills (opencode-devbox-environment, mempalace) + harness instruction (instructions/opencode-devbox.md) under /usr/local/share/opencode-devbox/, symlinked in by entrypoint-user.sh (skills only-when-absent; instruction symlink to image, never copied into the devbox-opencode-config volume). Ported from pi-devbox v1.2.0/v1.2.1, adapted to opencode's ~/.config/opencode/instructions/ auto-load model. No pi-extensions skill (opencode has no fork/recall). - Bump opencode 1.17.8 -> 1.17.10. - Bump mempalace 3.4.0 -> 3.5.0 (lockstep with pi-devbox v1.2.2); remove the obsolete diary_write anyOf perl workaround (fixed upstream, issue #1728). - Fix stale ssh-lan.conf ProxyJump guidance comment in setup-lan-access.sh (mirrors pi-devbox 8de0fad); comment-only. - smoke-test.sh + recreate-sanity-check.sh assert baked source + resolved links. - Docs: README Custom skills, AGENTS.md duties + MINOR example, CHANGELOG.
48 lines
2.3 KiB
Markdown
48 lines
2.3 KiB
Markdown
# Vendored fallback skills + harness instruction
|
|
|
|
This tree is **image-baked** content that `entrypoint-user.sh` links into place
|
|
on container start so the container behaves correctly **even when no private
|
|
`skillset` repo is mounted**:
|
|
|
|
- `skills/*` → symlinked into `~/.agents/skills/` (only when a skill of the same
|
|
name is not already present, so a mounted `skillset` or the OMOS bundled
|
|
skills always win).
|
|
- `instructions/*.md` → symlinked into `~/.config/opencode/instructions/`, which
|
|
opencode auto-loads as a session-start system prompt (only when a real file of
|
|
the same name is not already there).
|
|
|
|
| item | owner | how it gets here |
|
|
|------|-------|------------------|
|
|
| `skills/opencode-devbox-environment` | opencode-devbox (this repo) | authored here; the canonical copy |
|
|
| `skills/mempalace` | the `skillset` repo | **vendored fallback** (snapshot only) |
|
|
| `instructions/opencode-devbox.md` | opencode-devbox (this repo) | authored here; the proactive-load pointer |
|
|
|
|
## Why fallbacks exist
|
|
|
|
opencode discovers skills under `~/.agents/skills/` and loads harness
|
|
instructions from `~/.config/opencode/instructions/*.md` at session start. A
|
|
container started **without** the private `skillset` repo mounted would have
|
|
neither — so the agent would not know the container-shaped facts and would not
|
|
follow the MemPalace continuity protocol. Baking `opencode-devbox-environment`
|
|
and `mempalace` closes that *availability* gap, and the baked
|
|
`instructions/opencode-devbox.md` adds the matching *proactive-load* directive
|
|
(read those two skills at session start) so a fresh container actually picks
|
|
them up rather than relying on description-matching.
|
|
|
|
Note there is **no `pi-extensions` skill here**: opencode has no `fork`/`recall`
|
|
extensions (that is a pi-only concern), so the pi-devbox vendored set does not
|
|
carry over 1:1.
|
|
|
|
## Filename discipline
|
|
|
|
`instructions/opencode-devbox.md` deliberately uses a name distinct from the
|
|
skillset's `instructions/mempalace.md`. Both can be deployed at once (a mounted
|
|
skillset adds its own); the distinct name means our fallback is collision-free
|
|
and the entrypoint's never-overwrite-a-real-file guard never has to arbitrate.
|
|
|
|
## Refreshing the snapshots
|
|
|
|
cp <skillset>/skills/mempalace/SKILL.md skills/mempalace/SKILL.md
|
|
|
|
Snapshot provenance at last refresh: skillset `8e8db64`.
|