{"id":51026464,"url":"https://github.com/cheezy/stride-opencode-ideation","last_synced_at":"2026-06-21T20:01:48.190Z","repository":{"id":365444172,"uuid":"1260656914","full_name":"cheezy/stride-opencode-ideation","owner":"cheezy","description":"Stride ideation extension for OpenCode — /ideate and /stridify: turn a fuzzy idea into a committed requirements doc, then seed a Stride backlog from it.","archived":false,"fork":false,"pushed_at":"2026-06-17T10:02:40.000Z","size":167,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-17T12:04:23.361Z","etag":null,"topics":["kanban","opencode","stride"],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cheezy.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-06-05T18:20:21.000Z","updated_at":"2026-06-17T10:02:33.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/cheezy/stride-opencode-ideation","commit_stats":null,"previous_names":["cheezy/stride-opencode-ideation"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/cheezy/stride-opencode-ideation","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cheezy%2Fstride-opencode-ideation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cheezy%2Fstride-opencode-ideation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cheezy%2Fstride-opencode-ideation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cheezy%2Fstride-opencode-ideation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cheezy","download_url":"https://codeload.github.com/cheezy/stride-opencode-ideation/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cheezy%2Fstride-opencode-ideation/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34623906,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-21T02:00:05.568Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["kanban","opencode","stride"],"created_at":"2026-06-21T20:01:45.236Z","updated_at":"2026-06-21T20:01:48.179Z","avatar_url":"https://github.com/cheezy.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Stride Ideation for OpenCode\n\nTurn an idea into shipped Stride tasks — from OpenCode.\n\nThis extension provides brainstorming and ideation commands for projects that use [Stride](https://www.stridelikeaboss.com). It is the [OpenCode](https://opencode.ai) port of [`cheezy/stride-ideation`](https://github.com/cheezy/stride-ideation) (Claude Code). Run `/ideate` to drive an interactive ideation session that produces a committed requirements markdown document. Stop there if you just want a written spec — or run `/stridify` to decompose the requirements into a Stride batch JSON, commit it for audit, and POST it to the Stride API in a single invocation.\n\n\u003e **No plugin to install.** Ideation has no lifecycle hooks, so this is a skills/commands/agents bundle — there is no TypeScript plugin and no `\"plugin\"` entry to add to `opencode.json`. OpenCode discovers the pieces from `.opencode/` paths (see Installation).\n\n## Overview\n\nThe two native slash commands:\n\n```text\n/ideate [\u003ctopic\u003e] [--continue \u003cpath\u003e] [--profile \u003clean|product|discovery|lean-startup\u003e]\n  Interactive ideation session. Drives a Q\u0026A loop with you to produce a\n  timestamped requirements markdown doc. Stop here if you only want a spec.\n\n/stridify \u003cpath-to-requirements.md\u003e [--goal \u003cname|index\u003e]\n  End-to-end pipeline: validates the requirements doc, preflights auth,\n  dispatches the decomposer agent, stamps audit metadata, writes and\n  commits a sibling Stride batch JSON, then POSTs it to /api/tasks/batch\n  on your Stride instance and renders the created G/W identifiers.\n  --goal scopes the dispatch to one surface from the doc's\n  ## Decomposition seams section (see \"Resilience model\" below).\n```\n\n`/ideate` is hard-gated on seven required sections (Goal, Problem, Outcome, Assumptions, Constraints, Non-goals, Success Metrics) plus shape requirements on Assumptions (ranked, riskiest marked, premortem-derived) and Success Metrics (both leading and lagging indicators). `/stridify` is gated on a passing structural validation of the decomposer's output before it commits or POSTs anything.\n\n## Installation\n\nOpenCode discovers skills in `.opencode/skills/`, commands in `.opencode/commands/`, and agents in `.opencode/agents/`, and reads `AGENTS.md` from the project root (or the global `~/.config/opencode/` equivalents).\n\n### Using the bundled installer\n\n```bash\ngit clone https://github.com/cheezy/stride-opencode-ideation.git\n\n# Project-local (.opencode/ in the current directory)\n./stride-opencode-ideation/install.sh\n\n# Global (~/.config/opencode/)\n./stride-opencode-ideation/install.sh --global\n```\n\nOn Windows, use the PowerShell installer:\n\n```powershell\n.\\stride-opencode-ideation\\install.ps1            # project-local\n.\\stride-opencode-ideation\\install.ps1 -Global    # global\n```\n\n### Manual install\n\n```bash\ngit clone https://github.com/cheezy/stride-opencode-ideation.git /tmp/stride-opencode-ideation\n\nmkdir -p .opencode/skills .opencode/commands .opencode/agents\ncp -R /tmp/stride-opencode-ideation/skills/.   .opencode/skills/\ncp -R /tmp/stride-opencode-ideation/commands/. .opencode/commands/\ncp     /tmp/stride-opencode-ideation/agents/*.md .opencode/agents/\ncp     /tmp/stride-opencode-ideation/AGENTS.md ./AGENTS.md\n\n# /stridify also needs the lib/ helpers and (for the smoke test) fixtures/\ncp -R /tmp/stride-opencode-ideation/lib       .opencode/\ncp -R /tmp/stride-opencode-ideation/fixtures  .opencode/\n```\n\nThere is **no `\"plugin\"` step** — this bundle ships no TypeScript plugin.\n\n## Setup\n\n`/stridify` needs Stride API credentials. Create `.stride_auth.md` in your project root:\n\n```markdown\n- **API URL:** `https://www.stridelikeaboss.com`\n- **API Token:** `stride_...`\n- **User Email:** `you@example.com`\n```\n\nAdd `.stride_auth.md` to your `.gitignore` — it holds a secret token. The bundled `.gitignore` already excludes it. `/ideate` needs no credentials.\n\n## Commands\n\n### /ideate\n\nDrives the round-based ideation loop defined by the `stride-ideation` skill: Rounds 1–2 capture Goal/Problem/Outcome and the boundary conditions; Round 3 is a mandatory framing checkpoint; Round 4 is a mandatory premortem that folds failure modes into the Assumptions section and ranks them; the `lean-startup` profile adds a Round 5 MVP-design batch. After all seven sections have content, the `requirements-reviewer` agent runs an advisory pass, then the doc is written and committed. The terminal state is the written document — `/ideate` never auto-invokes `/stridify`.\n\nProfiles: `lean` (default), `product` (adds JTBD framing + Concrete Example section), `discovery` (adds Why-now + Alternatives), `lean-startup` (adds the Round-5 MVP / Validation experiment section).\n\n### /stridify\n\nValidates the requirements doc's seven sections, preflights `.stride_auth.md`, and dispatches the `requirements-decomposer` agent to produce a Stride batch JSON. It stamps `source_spec` + `source_spec_sha256` at the JSON root for audit, writes and commits a timestamped sibling batch JSON, strips the audit fields from the POST payload, then POSTs to `/api/tasks/batch` and renders the created G/W identifiers.\n\n#### Resilience model\n\n- **Preflight advisory** when a doc enumerates more than 3 surfaces under `## Decomposition seams`.\n- **`--goal \u003cname|index\u003e`** scopes the dispatch to a single surface from `## Decomposition seams`.\n- **Bounded decomposer-dispatch retry** — 3 attempts with ~30s / ~90s backoff on HTTP 529 / network / \"overloaded\" failures.\n- **Fallback** — on retry exhaustion the assembled prompt is written to a sibling `*-decomposer-prompt.md` file. The Stride API POST itself is not retried; re-invoke on a 4xx/5xx.\n\n## Skill and Agents\n\n- **`stride-ideation`** skill — the protocol contract (required sections, shape requirements, rounds, premortem, profiles, terminal state).\n- **`requirements-reviewer`** agent — advisory gap review of a draft doc; reports only, never edits.\n- **`requirements-decomposer`** agent — turns a committed doc into a single fenced batch JSON; no prose.\n\n## How this relates to `stride-opencode`\n\n[`stride-opencode`](https://github.com/cheezy/stride-opencode) covers the **task lifecycle** (claiming, hook execution via its TypeScript plugin, completion). This extension covers **ideation** — turning a fuzzy idea into a requirements doc and seeding a Stride backlog from it. A typical full loop installs both: `/ideate` → `/stridify` here, then claim and ship the resulting tasks with `stride-opencode`.\n\n## License\n\nMIT — see [LICENSE](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcheezy%2Fstride-opencode-ideation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcheezy%2Fstride-opencode-ideation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcheezy%2Fstride-opencode-ideation/lists"}