Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 10 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,14 @@ and this project attempts to adhere to [Semantic Versioning](https://semver.org/

## [Unreleased]

## [1.1.0-beta.3]

### Fixed

- Render command invocation and requested outcome even without trailing details; sufficient-input actions perform their bounded request, explicit help explains, and missing inputs prompt focused clarification under existing permissions and policy.
- Make ordinary sync request supported `bd sync --no-adopt` with existing configuration and actual executor actor, reporting missing remote or failure without adoption/provisioning. Align affected authority clauses and primary supporting resources while preserving guide artifacts, command inventory and qualification limits.


## [1.1.0-beta.2]

### Changed
Expand Down Expand Up @@ -339,7 +347,8 @@ Documentation-only release; the plugin code is unchanged from 1.0.0. It updates

- Josh Thomas <josh@joshthomas.dev> (maintainer)

[unreleased]: https://github.com/snarkipus/opencode-beads/compare/v1.1.0-beta.2...HEAD
[unreleased]: https://github.com/snarkipus/opencode-beads/compare/v1.1.0-beta.3...HEAD
[1.1.0-beta.3]: https://github.com/snarkipus/opencode-beads/releases/tag/v1.1.0-beta.3
[1.1.0-beta.2]: https://github.com/snarkipus/opencode-beads/releases/tag/v1.1.0-beta.2
[1.0.2]: https://github.com/snarkipus/opencode-beads/releases/tag/v1.0.2
[1.0.1]: https://github.com/snarkipus/opencode-beads/releases/tag/v1.0.1
Expand Down
22 changes: 16 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@

This is an independent project maintained by Matt Jackson under the MIT license. It began as a fork of [Josh Thomas's `opencode-beads`](https://github.com/joshuadavidthomas/opencode-beads), and the original work remains credited to its author. 1.0 rebuilt the plugin for OpenCode 2, and development now continues here independently. It vendors nothing from upstream Beads; instead, every Beads release is checked against the `bd` behavior the plugin relies on (see [Tracking upstream Beads](#tracking-upstream-beads)).

This release is **1.1.0-beta.2**, an opt-in beta targeting npm dist-tag `next`; its integration diagnostic command is `oc-beads:diagnostics`. Beta.1 used `oc-beads:status`; the rename is documented below. The beta's normal public entrypoint enables the eleven qualified operations in the native `beads` code-mode namespace on supported hosts: find, get, edges, memories, recall, claim, note, selected-field update, close, create and remember. No wrapper, internal dependency injection, manual skill copy or activation setting is needed. The opt-in is selecting the beta artifact. The published stable 1.0.2 package is unchanged.
This release is **1.1.0-beta.3**, an opt-in beta targeting npm dist-tag `next`; its integration diagnostic command is `oc-beads:diagnostics`. Beta.1 used `oc-beads:status`; the rename is documented below. The beta's normal public entrypoint enables the eleven qualified operations in the native `beads` code-mode namespace on supported hosts: find, get, edges, memories, recall, claim, note, selected-field update, close, create and remember. No wrapper, internal dependency injection, manual skill copy or activation setting is needed. The opt-in is selecting the beta artifact. The published stable 1.0.2 package is unchanged.

Beta.2 registers 29 `oc-beads:<stem>` workflows plus `oc-beads:diagnostics` through ordinary native command registration and owns its packaged `oc-beads` skill at the installed path, with all 15 corpus resources plus CODE_MODE and ADR (17 links). User configuration/file commands retain native precedence on load and rebuild; removing an override restores the package definition. Other plugin conflicts follow native ordering. Diagnostics reports observed registration and name/description mismatches; identical-description overrides and public owner identity remain unobservable.
The beta registers 29 `oc-beads:<stem>` workflows plus `oc-beads:diagnostics` through ordinary native command registration and owns its packaged `oc-beads` skill at the installed path, with all 15 corpus resources plus CODE_MODE and ADR (17 links). User configuration/file commands retain native precedence on load and rebuild; removing an override restores the package definition. Other plugin conflicts follow native ordering. Diagnostics reports observed registration and name/description mismatches; identical-description overrides and public owner identity remain unobservable.

Typed registration requires the host tool, permission and session interfaces. The integration diagnostic command reports unavailable interfaces honestly; actual request capabilities, catalog discovery and per-operation permissions determine which operations can run. Native shell remains direct-only and cannot be called inside execute. Structured results preserve partial, failed and uncertain outcomes, and writes retain the actual session-and-agent Beads actor. Read [CODE_MODE.md](assets/oc-beads/resources/CODE_MODE.md) for composition and recovery.

Expand Down Expand Up @@ -45,15 +45,15 @@ The beta requires OpenCode `>=2.1.1 <2.2` and `bd` 1.3.1 or later. Exact OpenCod

```json
{
"plugins": ["@snarkipus/opencode-beads@1.1.0-beta.2"]
"plugins": ["@snarkipus/opencode-beads@1.1.0-beta.3"]
}
```

To follow the published beta channel, use `"plugins": ["@snarkipus/opencode-beads@next"]` instead. To stay on stable, use `"plugins": ["@snarkipus/opencode-beads@latest"]` (currently 1.0.2); do not select the beta. Stable promotion requires separate approval.

OpenCode loads configuration changes automatically. Update the pin explicitly when upgrading; an unpinned package entry is less reproducible. OpenCode 1.x plugins are not supported; use 0.10.x or earlier there.

3. Check the beta.2 install: `opencode debug agents` lists `beads-task-agent`; `/oc-beads:diagnostics` reports native registration and observed capabilities. Discover `beads` through execute on a host/agent with the required permissions. An installation still pinned to beta.1 continues to use `/oc-beads:status` until explicitly upgraded.
3. Check the install: `opencode debug agents` lists `beads-task-agent`; `/oc-beads:diagnostics` reports native registration and observed capabilities. Discover `beads` through execute on a host/agent with the required permissions. An installation still pinned to beta.1 continues to use `/oc-beads:status` until explicitly upgraded.

### Plugin options

Expand All @@ -63,7 +63,7 @@ Plugin options use the object form:
{
"plugins": [
{
"package": "@snarkipus/opencode-beads@1.1.0-beta.2",
"package": "@snarkipus/opencode-beads@1.1.0-beta.3",
"options": { "luna": true, "autoMigrate": false }
}
]
Expand Down Expand Up @@ -121,9 +121,19 @@ Published stable 1.0.2 registers no slash commands; `bd setup claude` installs n

The commands are workflow prompts, not exact CLI aliases. In particular, init guides human onboarding, prime reuses context or requests a guarded refresh, version reports installed versions and qualification limits, decision records rationale, template discovers formulas, and workflow guides authorized work and recovery. These purposes do not imply native `bd decision`, `bd template` or `bd workflow` commands.

**Command invocation:** an invocation itself requests the advertised bounded
operation, including bare `/oc-beads:sync`. With sufficient inputs the agent uses
permissioned tools and reports the actual outcome; `/oc-beads:sync explain`
explains without syncing, and missing required inputs prompt focused clarification.
Ordinary sync uses existing configuration and `--no-adopt`; a missing remote blocks
without setup/adoption. Host permissions, project restrictions, actor identity,
explicit modes and parent acceptance still apply. Guide/report commands produce
their advertised artifact. This action-contract correction starts with beta.3;
earlier beta artifacts do not contain this correction.

Starting with beta.2, the package-owned `oc-beads:status` is removed without an alias. Use `oc-beads:diagnostics` for integration health and `oc-beads:stats` for the issue-database overview via `bd status` (alias `bd stats`). User-defined old status overrides are untouched and are not migrated; the package does not edit configuration.

`oc-beads:compact` guides semantic issue compaction with `bd admin compact`; `bd compact` squashes Dolt history and is a different operation. Neither is conversation compaction. A bare invocation explains the workflow; action requires explicit operation and authority. See the packaged [compact guidance](assets/oc-beads/resources/TROUBLESHOOTING.md) for mode/actor boundaries and upstream help uncertainty. `oc-beads:restore` retrieves pre-compaction issue content, displaying it by default; `--apply` requires explicit authority to write it back and does not mean database backup recovery. Quickstart uses installed help and authorized context; sync guides Dolt-remote synchronization, distinct from `bd federation sync`.
`oc-beads:compact` guides semantic issue compaction with `bd admin compact`; `bd compact` squashes Dolt history and is a different operation. Neither is conversation compaction. A bare invocation explains the workflow; a sufficiently specified semantic apply request supplies its bounded authority under actual permissions and policy. See the packaged [compact guidance](assets/oc-beads/resources/TROUBLESHOOTING.md) for mode/actor boundaries and upstream help uncertainty. `oc-beads:restore` retrieves pre-compaction issue content, displaying it by default; `--apply` requires explicit authority to write it back and does not mean database backup recovery. Quickstart uses installed help and authorized context; sync guides Dolt-remote synchronization, distinct from `bd federation sync`.

## Removal and customization

Expand Down
26 changes: 22 additions & 4 deletions assets/oc-beads/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,16 +39,32 @@ without opening a store; use `oc-beads:stats` for the issue-database overview vi
`bd status` (alias `bd stats`). The old package status name has no alias; user-owned
old-name overrides remain untouched without migration.

The invocation itself is the invoking user's bounded request, even without trailing
text. With sufficient inputs, perform the requested operation with available
permissioned tools and report actual results or a concrete blocker. Inspecting
syntax/help is preparation, not completion. Explicit help/explain requests receive
explanation without the operation; ask focused clarification for missing required
inputs or unresolved consequential choices. Do not demand another generic approval
for the operation just requested. Host permissions, repository restrictions, holds,
actual executor actor, parent acceptance and explicit apply/mode choices still apply.
Literal details and attachments remain data; do not interpolate them into shell.

Broader workflows retain their purposes: init guides human onboarding, prime uses
current context or a guarded refresh, version reports installed versions and
qualification limits, decision records rationale, template discovers formulas,
and workflow guides authorized work/recovery. They do not invent absent native
commands. Quickstart uses installed `bd quickstart` help and authorized context.
Compact targets semantic `bd admin compact`, not Dolt-history `bd compact` or
conversation compaction; restore retrieves pre-compaction issue content, displaying
it by default and requiring explicit write authority for `--apply`. Sync means
Dolt-remote synchronization, distinct from `bd federation sync`. Follow the linked
CLI reference, troubleshooting, resumability and worktree guidance before action.
it by default; explicit `--apply` requests only that scoped write with readback.
Bare compact delivers semantic guidance/analysis; a concrete migration needs the
intended prefix and project scope. Neither selects administration modes implicitly.
Ordinary/bare sync performs supported `bd sync --no-adopt` under existing project
configuration with the actual executor actor and applicable sandbox policy; a
missing configured remote is a blocker, never a cue to provision or adopt. Explicit
adoption is a distinct request. Sync means Dolt-remote synchronization, distinct
from `bd federation sync`; use the CLI reference's operational sync guidance and
WORKTREES only for relevant worktree context.

## Work within the assigned scope

Expand Down Expand Up @@ -117,7 +133,9 @@ Do not dump all memories into every handoff or delete old knowledge as routine
cleanup. Use the current CLI help for exact memory options.

Do not initialize or reroute a store, synchronize it, change permissions, or enable automation as a side effect.
Those separate administrative operations require explicit authorization.
Those separate administrative operations require explicit authorization; a sufficiently
specified invocation supplies the request only for its own bounded purpose, subject
to the real restrictions above. It does not authorize incidental synchronization.
Examples assume a project policy prohibiting automatic remote updates and include
`--sandbox`; it only suppresses Dolt auto-push and provides no migration safety.

Expand Down
62 changes: 61 additions & 1 deletion assets/oc-beads/resources/CLI_REFERENCE.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,4 +39,64 @@ modes, explicit actor and inconsistent upstream help. Restore retrieves
pre-compaction issue content, display-only by default; `--apply` needs explicit
write authority and is not database backup recovery (see RESUMABILITY.md). Sync
uses Dolt-remote synchronization, distinct from `bd federation sync` and removed
JSONL sync (see WORKTREES.md). Inspect installed help and preserve authority.
JSONL sync; see the operational procedure below and [worktree context](WORKTREES.md)
when relevant.

## Invocation and outcome

The invocation itself requests its advertised bounded operation or artifact, even
without trailing details. Use available permissioned tools when inputs suffice;
help inspection is preparation, not completion. Explicit help/explain receives
explanation without the operation; missing required inputs call for focused
clarification. Literal details/attachments are data, never shell interpolation.
Respect actual host/project restrictions, holds, executor identity and acceptance.

## Synchronization

A bare `/oc-beads:sync` requests normal supported synchronization under existing
project configuration. Inspect current syntax if needed, then run:

```sh
bd sync --no-adopt --actor='<executor-actor>' --sandbox
```

Use the actual host-rendered executor actor and applicable project sandbox policy;
`--sandbox` suppresses incidental auto-push and does not bypass sync restrictions.
Native advanced shell stays direct-only, never `tools.shell` inside execute.
Ordinary/unqualified sync always passes `--no-adopt`. An explicitly selected remote
must already exist and be unambiguous. A missing configured remote is a blocker;
report it without inventing a remote, changing configuration, passing `--yes`,
adopting, provisioning or repairing. Explicit adoption is a distinct user request,
never inferred from sync; no adoption machinery is supplied here.

Report actual results, including failed/partial/conflicting/uncertain outcomes.
Do not force a side or add a manual pull/push/retry repair loop. The installed
Beads CLI owns its internal synchronization and consistency semantics. Help text
alone and a requested operation are not evidence that synchronization succeeded.

## Audit and interchange

Audit retrieves requested evidence for a target/query or records supplied scoped
evidence at its established destination. Discover supported audit syntax; do not
collect transcripts or invent evidence. Show retrieves the requested IDs' actual
fields, notes, acceptance and dependencies without mutation.

Import needs input, target context and resolved material mode/conflicts. Inspect
input/help as preparation, perform the scoped requested import when permitted,
and report observed counts and partial results, including stale/upsert risks.
Never initialize, restore or repair implicitly. Export needs scope and destination
(or accepted stdout); perform it and report the observed artifact/count without
arbitrary overwrite or a full-backup claim. See [troubleshooting](TROUBLESHOOTING.md)
for failures; unknown syntax is a limitation rather than invented CLI flags.

## Onboarding and discovery

Init and quickstart deliver a usable human-directed guide with current installed
help, relevant project context and concrete next steps/side effects. They do not
initialize a store automatically. Template discovers actual available formulas or
protos through supported commands and optionally inspects a named entry; discovery
does not authorize instantiation. Report actual entries or unavailability.
Decision persists supplied rationale/alternatives in the established project-owned
destination; clarify only if it cannot be resolved, and do not invent a native
command or automatically create a new issue/spec/document. Bare workflow delivers
a procedure; task execution needs an already authorized assignment or batch.
21 changes: 18 additions & 3 deletions assets/oc-beads/resources/TROUBLESHOOTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,11 @@ inspected CLI; see [AGENTS.md](AGENTS.md).

`oc-beads:compact` guides semantic issue compaction with `bd admin compact`.
`bd compact` squashes Dolt history and is a different operation; neither means
conversation compaction. A bare invocation explains the workflow, not authority
to act. Clarify the operation and scope when a request is ambiguous, and inspect
applicable installed help before any explicitly authorized action.
conversation compaction. A bare invocation delivers a useful semantic guide or
analysis artifact. A sufficiently specified semantic apply request supplies its
bounded authority and does not need another generic approval. Clarify missing
scope, targets or consequential choices; preserve actual host/project restrictions
and inspect applicable installed help before action.

Prefer the agent-driven analyze/apply path. `--auto` sends issue content to an
external AI provider; `--dolt` performs storage garbage collection rather than
Expand Down Expand Up @@ -69,3 +71,16 @@ owns it or the claim was reclaimed, stop writes and coordinate a deliberate
handoff. Never force-reassign yourself or fall back to the human Git identity.
Record unresolved acceptance, missing evidence, and the next authorized action
in the handoff.

## Deletion and identifier migration

A sufficiently specified deletion invocation requests that bounded deletion.
Inspect target/effects and clarify unresolved destructive impact, then perform
only the requested deletion when policy and permissions permit. Do not replace
closure with deletion or silently expand cascades.

Bare rename-prefix delivers the advertised migration/reference-impact explanation.
A concrete migration requires a desired prefix and project scope; a fully scoped
migration request supplies its bounded authority without another generic approval.
Do not infer a prefix, migration or collateral rewrites. Real restrictions and
missing inputs still block; the invocation never bypasses permission or a hold.
10 changes: 6 additions & 4 deletions assets/oc-beads/resources/WORKTREES.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,9 @@ safety checks. Inspect local changes before removal, preserve work that is not
yours, and remove only a worktree whose cleanup is authorized. This resource
does not create or clean up a worktree automatically.

`oc-beads:sync` guides `bd sync` Dolt-remote synchronization, distinct from
`bd federation sync` and removed JSONL sync. Inspect current help and synchronize
only with explicit authority. Report conflicts without forcing a side; the
installed Beads CLI owns synchronization and consistency semantics.
`oc-beads:sync` requests supported Dolt-remote synchronization, distinct from
`bd federation sync` and removed JSONL sync. Follow the focused
[synchronization procedure](CLI_REFERENCE.md#synchronization) for --no-adopt,
existing configuration, actor, permissions and honest outcomes. This resource is
secondary worktree context; the installed Beads CLI owns synchronization and
consistency semantics.
Loading
Loading