{"id":49813873,"url":"https://github.com/baseinfinity/opencode-sdlc-wizard","last_synced_at":"2026-05-24T22:01:05.615Z","repository":{"id":355558105,"uuid":"1228556422","full_name":"BaseInfinity/opencode-sdlc-wizard","owner":"BaseInfinity","description":"SDLC enforcement for OpenCode CLI — privacy-first, any-backend portability. Sibling of agentic-sdlc-wizard (Claude Code) and codex-sdlc-wizard (Codex CLI). Part of the XDLC ecosystem.","archived":false,"fork":false,"pushed_at":"2026-05-18T02:58:34.000Z","size":653,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-18T03:54:26.607Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://github.com/BaseInfinity/xdlc","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/BaseInfinity.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":"ROADMAP.md","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-05-04T06:21:44.000Z","updated_at":"2026-05-18T02:58:33.000Z","dependencies_parsed_at":"2026-05-24T22:00:56.916Z","dependency_job_id":null,"html_url":"https://github.com/BaseInfinity/opencode-sdlc-wizard","commit_stats":null,"previous_names":["baseinfinity/opencode-sdlc-wizard"],"tags_count":26,"template":false,"template_full_name":null,"purl":"pkg:github/BaseInfinity/opencode-sdlc-wizard","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BaseInfinity%2Fopencode-sdlc-wizard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BaseInfinity%2Fopencode-sdlc-wizard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BaseInfinity%2Fopencode-sdlc-wizard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BaseInfinity%2Fopencode-sdlc-wizard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BaseInfinity","download_url":"https://codeload.github.com/BaseInfinity/opencode-sdlc-wizard/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BaseInfinity%2Fopencode-sdlc-wizard/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33452033,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-24T19:21:36.376Z","status":"ssl_error","status_checked_at":"2026-05-24T19:21:10.562Z","response_time":57,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":[],"created_at":"2026-05-13T03:09:11.410Z","updated_at":"2026-05-24T22:01:05.600Z","avatar_url":"https://github.com/BaseInfinity.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# OpenCode SDLC Wizard\n\n\u003e **Status: v0.8.1 (codex round-1 fixes — Google tier mismatch,\n\u003e canonical env names, cost-ladder freshness, validator addProps —\n\u003e on top of v0.8.0's free-tier-first picker + cost ladder + 5 new\n\u003e providers + schemas + validator + full template set + check\n\u003e subcommand) — 2026-05-05.** Install with `npx opencode-sdlc-wizard init`, check\n\u003e upstream with `npx opencode-sdlc-wizard check`. Full SDLC loop is\n\u003e any-backend on both coder AND reviewer (zero Anthropic+OpenAI lock-in\n\u003e possible); detector now picks up free-tier-friendly providers\n\u003e (Cerebras free, NVIDIA NIM credits, Groq free, Google AI Studio\n\u003e quota) and the new `--free-tier-first` flag biases recommendations\n\u003e toward $0/mo paths. See [`docs/cost-ladder.md`](docs/cost-ladder.md)\n\u003e for the $0 / $20 / $200 budget breakdown.\n\u003e Phase B (backend matrix proof) and Phase C (hardware scout) deferred\n\u003e to follow-up releases. See [`HANDOFF.md`](HANDOFF.md) for architecture\n\u003e decisions, [`PRIVACY.md`](PRIVACY.md) for the tier model, and\n\u003e [`CHANGELOG.md`](CHANGELOG.md) for release notes.\n\nSDLC enforcement for [`sst/opencode`](https://github.com/sst/opencode) — the\nprivacy-first, any-backend agent CLI. This wizard ports the same plan → TDD\n→ self-review enforcement pattern from the Claude / Codex siblings into the\nOpenCode runtime, so users can get SDLC discipline against **whatever model\nbackend their privacy / compliance constraints allow** — not just Anthropic.\n\nSupported backends OpenCode already speaks (and we'll inherit):\n- **Local:** Ollama, LM Studio, llama.cpp, vLLM, MLX (Apple Silicon)\n- **Enterprise:** Azure OpenAI, AWS Bedrock, internal AI gateways\n- **Hosted OSS:** Together, Groq, OpenRouter, Cerebras, DeepSeek-direct, NVIDIA NIM\n- **Standard:** OpenAI, Anthropic, Google AI Studio (Gemini)\n\nFor a concrete cost-vs-capability map across these — including\n$0/mo, $20/mo, $200/mo budget paths and which model fits which job —\nsee [`docs/cost-ladder.md`](docs/cost-ladder.md).\n\n## XDLC Ecosystem (Sibling Projects)\n\nThis wizard is one of four sibling projects. Same enforcement philosophy,\ndifferent agent / domain:\n\n| Package | Agent / Domain | What It Does |\n|---------|----------------|--------------|\n| [`agentic-sdlc-wizard`](https://www.npmjs.com/package/agentic-sdlc-wizard) ([repo](https://github.com/BaseInfinity/claude-sdlc-wizard)) | Claude Code / SDLC | Plan → TDD → self-review for code, with hooks + skills + CI scoring |\n| [`codex-sdlc-wizard`](https://www.npmjs.com/package/codex-sdlc-wizard) ([repo](https://github.com/BaseInfinity/codex-sdlc-wizard)) | OpenAI Codex / SDLC | Same SDLC enforcement, ported to Codex CLI (writes `.codex/` + `AGENTS.md`) |\n| [`claude-gdlc-wizard`](https://www.npmjs.com/package/claude-gdlc-wizard) ([repo](https://github.com/BaseInfinity/claude-gdlc-wizard)) | Claude Code / GDLC | Game Development Life Cycle — persona-driven playtest cycles, triangulated findings, ratchet-only-tightens |\n| **`opencode-sdlc-wizard` (this repo)** | **OpenCode / SDLC** | **Same SDLC enforcement, ported to OpenCode (writes `.opencode/`). Privacy-first, any-backend.** |\n\nAll four are part of the broader [XDLC ecosystem](https://github.com/BaseInfinity/xdlc) — generalized lifecycle enforcement across agents and domains.\n\n## Roadmap\n\nTracked as **ROADMAP #9** in the parent repo:\n[`BaseInfinity/claude-sdlc-wizard/ROADMAP.md`](https://github.com/BaseInfinity/claude-sdlc-wizard/blob/main/ROADMAP.md).\n\nThree phases:\n- **Phase A (current target):** port hooks + skills + install.sh from\n  Claude / Codex pattern. Ship v0.1.0.\n- **Phase B:** backend matrix proof — run E2E SDLC scenario across local\n  (Ollama + Qwen-Coder), enterprise (Azure OpenAI), hosted OSS\n  (Together/Groq), and Anthropic baselines. Document which backends hold\n  SDLC compliance.\n- **Phase C:** hardware scout for the local-tier compute requirement\n  (gaming laptop / Windows laptop / $200–400 rig / cloud GPU rental).\n\n## Capability floor\n\n\"Just works on every LLM\" is the dream but not the spec. Small local models\n(7–13B) are expected to fail the full plan → TDD → self-review protocol —\ninstruction-following, long-context reasoning, and tool-use are all\nload-bearing. The 30B+ code-tuned class (Qwen-Coder, DeepSeek-Coder) is\nthe likely local sweet spot. **A failed run on an undersized model is a\ncapability result, not a port bug.**\n\n## Install\n\nFrom a target repo's root, the easiest path:\n\n```bash\nnpx opencode-sdlc-wizard init\n```\n\nThat's it. Equivalent to the longer manual form:\n\n```bash\ngit clone https://github.com/BaseInfinity/opencode-sdlc-wizard /tmp/opencode-sdlc-wizard\nbash /tmp/opencode-sdlc-wizard/install.sh\n```\n\nBoth paths are supported. `npx` is preferred for first-time installs;\n`git clone + install.sh` is preferred when you want to inspect the bundle\nbefore merging it. Re-run with `--force` to overwrite customizations,\n`--dry-run` to preview without writing.\n\nThis non-destructively merges the wizard into your `.opencode/`:\n\n- `.opencode/plugins/sdlc-wizard.js` (the OpenCode plugin shim)\n- `.opencode/hooks/*.sh` (5 portable bash hooks)\n- `.opencode/scripts/{detect,configure}-backend.sh` (privacy-first picker)\n- `.opencode/skills/{sdlc,setup-wizard,update-wizard,feedback}/SKILL.md`\n- `AGENTS.md` and `PRIVACY.md` at repo root\n\nExisting customizations are preserved. Re-run with `--force` to overwrite.\n\nNative `npx opencode-sdlc-wizard init` shipped in v0.3.0. The bash\ninstaller remains the inspection/scripting path.\n\n## Pick a backend (privacy-first)\n\n```bash\n# See what's reachable from this machine (privacy-first cascade)\nbash .opencode/scripts/detect-backends.sh\n\n# Or bias toward free-tier providers (NVIDIA NIM, Cerebras, Groq,\n# Google AI Studio) before paid hosted/proprietary\nbash .opencode/scripts/detect-backends.sh --free-tier-first\n\n# Configure the highest-privacy tier you can use\nbash .opencode/scripts/configure-backend.sh \\\n     --tier private_local --provider ollama \\\n     --model qwen3-coder:30b\n\n# Or for a $0/mo free-tier setup (Cerebras free, sub-second inference):\nbash .opencode/scripts/configure-backend.sh \\\n     --tier hosted_oss --provider cerebras \\\n     --model llama-3.3-70b\n```\n\nFour tiers, ordered by where your prompts travel:\n\n| Tier | Travels to | Examples |\n|------|------------|----------|\n| `private_local` | Stays on your machine | Ollama, LM Studio, llama.cpp, vLLM |\n| `enterprise` | Your tenant | Azure OpenAI, AWS Bedrock |\n| `hosted_oss` | Third-party host | Together, Groq, OpenRouter |\n| `proprietary` | Vendor (Anthropic/OpenAI) | Claude, GPT |\n\nDetector probes PATH + env vars only — no network calls. Configurator merges\nnon-destructively into `opencode.json` and refuses to clobber an existing\n`model` pin without `--force`. See [`PRIVACY.md`](PRIVACY.md) for the\nOllama walkthrough and verification checklist.\n\n## Tests\n\n```bash\nbash tests/test-bundle-integrity.sh   # bundle correctness\nbash tests/test-plugin-shim.sh        # plugin ESM + bash hook validity\nbash tests/test-install.sh            # installer non-destructive behavior\nbash tests/test-backend-picker.sh     # detect/configure-backend behavior\nbash tests/test-cli.sh                # npx CLI wrapper\nbash tests/test-cross-model-review.sh # OSS-tier reviewer skill + script\nbash tests/test-domain-templates.sh   # TESTING.md domain templates\nbash tests/test-bundle-drift.sh       # bundle drift / mirror guards\nbash tests/test-check-cli.sh          # check subcommand + staleness\nbash tests/test-doc-templates.sh      # SDLC.md + ARCHITECTURE.md templates\nbash tests/test-review-schemas.sh     # JSON Schemas + validator\n```\n\nOr `npm test` runs all eleven (270 tests).\n\n## Known limitations\n\n- **No `UserPromptSubmit` analog in OpenCode.** SDLC BASELINE moves to\n  AGENTS.md (loaded once per session) instead of repeating per prompt.\n- **Phase A only.** Backend matrix proof (Phase B) and hardware scout\n  (Phase C) deferred. The wizard installs and runs against any OpenCode\n  backend; we just haven't yet measured SDLC-compliance scores across\n  backends statistically.\n- **No upstream-sync workflow yet.** Updates from the parent\n  `claude-sdlc-wizard` are manual. Future releases will mirror the\n  Codex sibling's `.github/workflows/upstream-sync.yml` pattern.\n\n## License\n\n[MIT](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbaseinfinity%2Fopencode-sdlc-wizard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbaseinfinity%2Fopencode-sdlc-wizard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbaseinfinity%2Fopencode-sdlc-wizard/lists"}