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
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ something outside your opencode config say so in their description.
| `privacy-share-disabled` | Privacy | replace | In the bundle. Sets `share` to "disabled" so opencode never publishes a session, automatically or on command |
| `agent-runaway-guard` | Agent | merge | Adds step limits to built-in agents to prevent runaway tool loops |
| `default-agent-plan` | Agent | replace | Sets the default agent to "plan" so opencode always starts in plan mode instead of build mode |
| `opencode-planify-german` | Bundle | — | The whole planify setup, which does nothing in parts: the `opencode-planify-german` plugin from npm (pinned to `0.3.2`), registering a `plan_render` tool that validates a plan JSON against a schema and renders a self-contained HTML file to `docs/plans/<TICKET>-<slug>.html`; the rules file that makes opencode answer in German with Swiss orthography (never the eszett character, always `ss`) and send every plan through `plan_render`; and the `planify` skill documenting the plan schema. Rules file and skill are fetched sha256-verified. Restart opencode after installing — plugins are resolved at start |
| `opencode-planify-german` | Bundle | — | The whole planify setup, which does nothing in parts: the `opencode-planify-german` plugin from npm (pinned to `0.4.0`), registering a `plan_render` tool that validates a plan JSON against a schema and renders a self-contained HTML file to `docs/plans/<TICKET>-<slug>.html`, and a `plan_pr` tool that writes that plan as Markdown into the description of the open Bitbucket Data Center PR of the current branch; the rules file that makes opencode answer in German with Swiss orthography (never the eszett character, always `ss`) and send every plan through `plan_render`; and the `planify` skill documenting the plan schema. Prompts for the Bitbucket URL and an HTTP access token, stored as plugin options in `opencode.json` (token in plain text; prefer `--set-env bitbucketToken=ENV_VAR`). Rules file and skill are fetched sha256-verified. Restart opencode after installing — plugins are resolved at start |
| `skill-diagram-design` | Skill | append | Needs a clone of the repo on disk first — `git clone https://github.com/cathrynlavery/diagram-design ~/src/diagram-design`. Registers the `diagram-design` skill (editorial diagram types as self-contained HTML + SVG) by appending your clone's `skills/` dir to `skills.paths`; answer with that clone's `skills/` dir (`--set skillsDir=/Users/you/src/diagram-design/skills`); the install refuses if the dir is not there. Tracks `main` — the repo ships no tags. One-way: `remove` cannot undo an append preset that prompts, so uninstall by deleting the one `skills.paths` entry by hand |
| `tui-disable-mouse` | TUI | replace | Disables TUI mouse capture so native terminal selection and scrolling keep working |

Expand Down
10 changes: 5 additions & 5 deletions presets/instructions-opencode-planify-german.conf
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,16 @@
// `plan_render` tool. Makes opencode answer in German using Swiss
// orthography — never the eszett character, always "ss" (ausser, grösser,
// heisst) — with real umlauts, plus German code comments. Every plan goes to
// `plan_render` as JSON, never hand-written HTML or Markdown; the ticket key
// comes from the branch name. Appends a rules file to
// `plan_render` as JSON, never hand-written HTML or Markdown; `plan_pr`
// on request. Appends a rules file to
// `instructions`, replacing no built-in prompt.
// @author: Jan <jan@trick77.com>
// @version: 0.3.2
// @version: 0.4.0
// @part-of: opencode-planify-german
// @path: instructions
// @mode: append
// @fetch: https://raw.githubusercontent.com/trick77/opencode-planify-german/62caf977134dbe222b087f32e55051a3c6f79aaa/instructions/planify.md -> {{cache}}/opencode-planify-german-rules-0.3.2.md sha256=314ae512eb63c8026aa9a689b5205921020b29452d1c9a27f12046ed49a3008e
// @fetch: https://raw.githubusercontent.com/trick77/opencode-planify-german/2bdeafe3f5b9cb6ddef010157ff0c0f58daf8076/instructions/planify.md -> {{cache}}/opencode-planify-german-rules-0.4.0.md sha256=1f3e1533f20e9cc7ec5ea4d15d2a81861d68e6a4129dea50c2be451326299b68

[
"{{cache}}/opencode-planify-german-rules-0.3.2.md"
"{{cache}}/opencode-planify-german-rules-0.4.0.md"
]
14 changes: 7 additions & 7 deletions presets/opencode-planify-german.conf
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
// @name: opencode-planify-german
// @description: Bundle: the whole planify setup — the plugin providing the
// `plan_render` tool, the German rules file that makes every plan go through it,
// and the skill documenting the plan schema. Install all three or the setup is
// inert: the rules alone name a tool that does not exist, the plugin alone is never
// called. Replaces instructions-swiss-rules, which is gone: its language rules live
// in the planify rules file, its hand-written HTML plans do not.
// @description: Bundle: the whole planify setup — the plugin providing
// `plan_render` (plan JSON to HTML) and `plan_pr` (plan into a Bitbucket Data
// Center PR description), the German rules file that routes every plan through
// them, and the skill documenting the plan schema. Asks for the Bitbucket URL and
// an HTTP access token; the token lands in opencode.json in plain text. Install
// all three or the setup is inert.
// @author: Jan <jan@trick77.com>
// @version: 0.3.2
// @version: 0.4.0
// @include: plugin-opencode-planify-german
// @include: instructions-opencode-planify-german
// @include: skill-opencode-planify-german
26 changes: 18 additions & 8 deletions presets/plugin-opencode-planify-german.conf
Original file line number Diff line number Diff line change
@@ -1,15 +1,25 @@
// @name: plugin-opencode-planify-german
// @description: Needs instructions-opencode-planify-german too, or nothing tells
// the agent to use the tool — install the opencode-planify-german bundle for
// both. Adds the opencode-planify-german plugin from npm, pinned to 0.3.2, which
// registers `plan_render`: takes a plan as JSON, validates it against a schema,
// renders a self-contained HTML file to docs/plans/<TICKET>-<slug>.html and opens
// it. Restart opencode afterwards — plugins resolve at start.
// the agent to use the tools — install the opencode-planify-german bundle. Adds
// the opencode-planify-german plugin from npm, pinned to 0.4.0: `plan_render`
// renders a plan JSON to docs/plans/*.html, `plan_pr` writes it as Markdown into
// a Bitbucket Data Center PR description. URL and token go into opencode.json as
// plugin options, the token in plain text. Restart opencode afterwards.
// @author: Jan <jan@trick77.com>
// @version: 0.3.2
// @version: 0.4.0
// @part-of: opencode-planify-german
// @path: plugin
// @mode: append
// @pins: opencode-planify-german 0.3.2
// @pins: opencode-planify-german 0.4.0
// @prompt: bitbucketUrl | text | Bitbucket Data Center base URL (e.g. https://bitbucket.example.com)
// @prompt: bitbucketToken | secret | Bitbucket HTTP access token, used by plan_pr to edit PR descriptions

["opencode-planify-german@0.3.2"]
[
[
"opencode-planify-german@0.4.0",
{
"bitbucketUrl": "{{prompt:bitbucketUrl}}",
"bitbucketToken": "{{prompt:bitbucketToken}}"
}
]
]
10 changes: 5 additions & 5 deletions presets/skill-opencode-planify-german.conf
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,14 @@
// sha256-verified, and appends that directory to `skills.paths` — no clone needed.
// Uninstall by deleting the entry.
// @author: Jan <jan@trick77.com>
// @version: 0.3.2
// @version: 0.4.0
// @part-of: opencode-planify-german
// @path: skills.paths
// @mode: append
// @fetch: https://raw.githubusercontent.com/trick77/opencode-planify-german/62caf977134dbe222b087f32e55051a3c6f79aaa/skills/planify/SKILL.md -> {{cache}}/opencode-planify-german-skills-0.3.2/planify/SKILL.md sha256=de90cc59bf8ffbedb447680a35a4a386ec20d59c91ff9a4fdd2886d28cc78e48
// @fetch: https://raw.githubusercontent.com/trick77/opencode-planify-german/62caf977134dbe222b087f32e55051a3c6f79aaa/skills/planify/schema/plan.schema.json -> {{cache}}/opencode-planify-german-skills-0.3.2/planify/schema/plan.schema.json sha256=1617c2c2789d2ed2421145049b4a4dbe8614c6ef0e9027b85f31643ca6faee73
// @fetch: https://raw.githubusercontent.com/trick77/opencode-planify-german/62caf977134dbe222b087f32e55051a3c6f79aaa/skills/planify/references/beispiel-plan.json -> {{cache}}/opencode-planify-german-skills-0.3.2/planify/references/beispiel-plan.json sha256=f4507cf91ed84c54b323dede8050dcf9c15dfdb5ca9f6f1b78a2c1f6b4036bc3
// @fetch: https://raw.githubusercontent.com/trick77/opencode-planify-german/2bdeafe3f5b9cb6ddef010157ff0c0f58daf8076/skills/planify/SKILL.md -> {{cache}}/opencode-planify-german-skills-0.4.0/planify/SKILL.md sha256=1888e569c7ceaf8364e72e094ef3755e517117bb6fd2baff89c3162ac03cb2a1
// @fetch: https://raw.githubusercontent.com/trick77/opencode-planify-german/2bdeafe3f5b9cb6ddef010157ff0c0f58daf8076/skills/planify/schema/plan.schema.json -> {{cache}}/opencode-planify-german-skills-0.4.0/planify/schema/plan.schema.json sha256=1617c2c2789d2ed2421145049b4a4dbe8614c6ef0e9027b85f31643ca6faee73
// @fetch: https://raw.githubusercontent.com/trick77/opencode-planify-german/2bdeafe3f5b9cb6ddef010157ff0c0f58daf8076/skills/planify/references/beispiel-plan.json -> {{cache}}/opencode-planify-german-skills-0.4.0/planify/references/beispiel-plan.json sha256=f4507cf91ed84c54b323dede8050dcf9c15dfdb5ca9f6f1b78a2c1f6b4036bc3

[
"{{cache}}/opencode-planify-german-skills-0.3.2"
"{{cache}}/opencode-planify-german-skills-0.4.0"
]
2 changes: 1 addition & 1 deletion test/builtin-presets.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -200,7 +200,7 @@ test('records the pinned third-party version of every preset that installs one',
'jdtls-lombok': [{ name: 'lombok', version: '1.18.48' }],
'mcp-playwright': [{ name: '@playwright/mcp', version: '0.0.82' }],
'plugin-litellm-pricing': [{ name: 'opencode-plugin-litellm-pricing', version: '0.9.0' }],
'plugin-opencode-planify-german': [{ name: 'opencode-planify-german', version: '0.3.2' }],
'plugin-opencode-planify-german': [{ name: 'opencode-planify-german', version: '0.4.0' }],
'plugin-superpowers': [{ name: 'superpowers', version: '6.4.2' }],
};

Expand Down
Loading