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
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -29,3 +29,6 @@ __pycache__/
# local install/test debris
.home-fixture/
.scratch/
demos/
*.mp4
*.webm
32 changes: 31 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,37 @@

## Unreleased

None.
## 1.8.6 — 2026-09-18

Catalog modernization (Wave A): retire obsolete twins, compress primitives, and tighten routing. Totals reduced to **62** (47 model-invoked, 15 manual slash commands).

- **Catalog Retirement & Compression**:
- Retire model specialist `ask-matt`; workflow selection is handled directly by `AGENTS.md` and `rules/00-routing.md` without an extra specialist. Category checklist and phase boundary decision trees preserved in `skills/writing-for-agents/references/`.
- Compress `grilling` primitive into `grill-with-docs`; delete model skill `grilling`.
- Retire manual skill `/wait-what`; fold re-pitch instruction into `rules/03-prose-discipline.md`.
- Retire manual skill `/matt-implement`; spec-driven implementation and tracer-bullet tickets from `/to-tickets` execute directly in-session with `tdd`.
- Retain `wizard` for interactive human-only bash procedures (OAuth, secrets, cutover).
- Clarify mutual boundaries between `codebase-design` (single-module depth/seam design) and `/improve-codebase-architecture` (codebase scan and visual zero-network HTML report).
- **Survivor Upgrades**:
- `impeccable`: add 4-tier Taste Gate checklist (Hard Gate, Purpose-Gate, Quality Locks, Delivery Gate) into `reference/taste-guard.md`. Explicitly note that filter ≠ style guide, `BANK_MISS ≠ generate`, and dials in `taste/direction.md` apply after direction exists.
- `humanizer`: add During-Generation vs After-Audit copy check modes adapted from anti-slop copy rules; add explicit refusal boundaries for UI implementation and Oxlint installation.
- `scroll-world`: clarify user-chosen camera styles, seam QA (composition/continuity over raw PSNR), and graceful `NOT_CONFIGURED` degradation when paid video backends are absent.
- `markitdown`: update Microsoft markitdown pin to v0.1.7 (`945314a`); reaffirm output is Markdown data while SmartDoc retains QA/contract/render.
- `gh-axi` & `chrome-devtools-axi`: update command surfaces from upstream `kunchenguid/axi` (`fb75216`); enforce 4-door browser hierarchy.
- `browser-act`: document supported modes (`chrome`, `stealth-fresh`, `stealth-fixed`); reiterate `--type chrome-direct` ban and that `playwright-qa` remains the default verifier.
- `found-this-design`: allow referencing external DESIGN.md patterns (e.g. `awesome-design-md`) without cloning or vendoring; product UI direction stays Design Bank → Impeccable.
- `code-tour` & `why`: add "How it works" and "Where it lives" tour scaffolding to `code-tour`; add optional critique step to `/why`.
- **Policy & Boundary Integrity**:
- Reconcile `vendor/skill-allowlist.txt`, `vendor/skill-policy.json`, `vendor/license-audit.json`, and `vendor/provenance.json` to exactly 62 skills.
- Reject foreign control planes (ECC), standalone 3D anatomy apps (`human-atlas`), and auto-mutator loops (`ralph-loop`, `orchestrate`, `continual-learning`).

## 1.8.5 — 2026-09-16

Feature release. Totals now **66** (49 model-invoked, 17 manual slash commands).

- Add model-invoked specialist `id-demo-video` and manual slash command `/demo-video` (`manual-skills/demo-video`).
- Orchestrate end-to-end Indonesian application walkthrough videos, beat sheet timing (target duration ±15s), spoken oral Indonesian narration (130–150 wpm, anti-slop jargon ban), Edge TTS synthesis (`id-ID-GadisNeural` / `id-ID-ArdiNeural`) with SHA-256 caching and 429 backoff, Playwright/Chromium per-scene capture (1920x1080, human typing cadence), and FFmpeg composition/concat with 90s executive preview.
- Boundary enforcement: `id-demo-video` acts as demo pipeline director; `hyperframes` handles short title/end HTML cards only; `playwright-qa` remains functional browser QA; `visual-studio` remains photoreal non-UI media.

## 1.8.4 — 2026-09-16

Expand Down
17 changes: 11 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
# OpenCodeBestFriend

Production-ready capability layer for OpenCode:
64 routed skills (core + Wave 2/3 warehouse specialists), MCP, Codebase Memory,
62 routed skills (core + Wave 2/3 warehouse specialists), MCP, Codebase Memory,
Design Bank, Design Intelligence, SmartDoc, browser and verification tooling.

OpenCodeBestFriend is an installer and runtime overlay for [OpenCode](https://opencode.ai). It is **not** Claude Code, **not** a model provider, and **not** a dump of a developer home directory.

## What it is

- 64 skills: 48 model-invoked, 16 manual slash commands
- 62 skills: 47 model-invoked, 15 manual slash commands (frozen; see [docs/CATALOG-FREEZE.md](docs/CATALOG-FREEZE.md))
- A thin `AGENTS.md` router (lazy, one primary specialist)
- Core MCP: Codebase Memory, Context7, shadcn
- Design Bank discovery or download (media is **not** in git)
Expand Down Expand Up @@ -61,8 +61,8 @@ Restart OpenCode after install. Config is not hot-reloaded.
┌───────────────────┼────────────────────┐
▼ ▼ ▼
Skills MCP Rules
48 automatic Codebase Memory Verification
16 manual Context7 Engineering
47 automatic Codebase Memory Verification
15 manual Context7 Engineering
shadcn
Expand All @@ -86,27 +86,32 @@ Default: repository evidence first. Then at most one specialist.
| Intent | Route |
| --- | --- |
| Repo understanding | Codebase Memory MCP |
| How it works / where it lives | Codebase Memory then `code-tour` |
| Repo rationale | `/why` (manual) |
| Hard unknown bug | `diagnosing-bugs` |
| Security-sensitive work | `full-audit-keamanan` |
| Measured performance regression | `full-performance-audit` |
| Current library docs | Context7 |
| UI registry | shadcn MCP |
| Visual direction | `found-this-design` |
| UI implementation after a direction | `impeccable` |
| Generic AI UI look | `impeccable` taste-gate (not `install-anti-slop`) |
| Motion | `emil-design-eng` |
| Photoreal / media | `visual-studio` |
| Scroll-led storytelling | `scroll-craft` |
| Scroll-driven 3D / camera world | `scroll-world` |
| Procedural Three.js object from image | `img2threejs` |
| Deterministic HTML composition video | `hyperframes` |
| Demo video aplikasi & narasi ID | `id-demo-video` (`/demo-video`) |
| Browser | `playwright-qa` → `browser-act` → `chrome-devtools-axi` → `click-path-audit` |
| Documents (PDF/DOCX/answer/extract/review) | `smartdoc` |
| File to Markdown ingest | `markitdown` |
| Reusable book/module knowledge | `smartbook-ingest` |
| Scholarly literature & manuscripts | `academic` |
| Prose AI-tell removal & humanizing | `humanizer` (`/unslop`) |
| Generic AI prose | `humanizer` / `/unslop` |
| Editorial HTML/SVG diagrams | `diagram-design` |
| TS Oxlint install | `install-anti-slop` (explicit only) |
| Architecture bake-off | `/architect` (manual) |
| Repo rationale | `/why` (manual) |

Warehouse: `api-design`, `contract-first`, `automation-audit-ops`, `code-tour`, `click-path-audit` (plus Wave 2 diagnostics).

Expand Down
2 changes: 1 addition & 1 deletion THIRD_PARTY_NOTICES.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ Machine-readable copy: `vendor/license-audit.json`.
| --- | --- | --- | --- |
| `adhd` | vendored frontmatter | MIT | follow MIT |
| `impeccable` | vendored frontmatter | Apache-2.0 | follow Apache-2.0 |
| Matt Pocock selected skills (`diagnosing-bugs`, `domain-modeling`, `codebase-design`, `writing-for-agents`, `research`, `prototype`, `grilling`, `improve-codebase-architecture`, `wizard`, `wait-what`, `ask-matt`, `grill-with-docs`, `to-spec`, `to-tickets`, `tdd`, `matt-code-review` ← `code-review`, `matt-implement` ← `implement`) | mattpocock/skills MIT LICENSE — `vendor/licenses/MATT-POCOCK-MIT.txt` | MIT | follow MIT |
| Matt Pocock selected skills (`diagnosing-bugs`, `domain-modeling`, `codebase-design`, `writing-for-agents`, `research`, `prototype`, `improve-codebase-architecture`, `wizard`, `grill-with-docs`, `to-spec`, `to-tickets`, `tdd`, `matt-code-review` ← `code-review`) | mattpocock/skills MIT LICENSE — `vendor/licenses/MATT-POCOCK-MIT.txt` | MIT | follow MIT |
| Pstack selected skills (`blast-radius`, `unslop`, `create-verification-skill`, `maintain-verification-skill`, `technical-writing`, `arena`, `interrogate`, `architect`, `decision-log`, `why`, `reflect`, `figure-it-out`) | cursor/plugins pstack `60c641e` | MIT — `vendor/licenses/PSTACK-MIT.txt` | follow MIT |
| Snapshot skills (`browser-act`, `chrome-devtools-axi`, `emil-design-eng`, `found-this-design`, `full-audit-keamanan`, `full-performance-audit`, `gh-axi`, `scroll-world`, `visual-studio`) | GrokBestFriend 1.3.1 snapshot + `vendor/licenses/GROKBESTFRIEND-MIT.txt`; skill wrappers MIT. Separate CLIs follow their own packages. | MIT | follow MIT |
| `scroll-craft` | [nateherkai/scroll-craft](https://github.com/nateherkai/scroll-craft) `0b81622` — `vendor/licenses/NATEHERK-SCROLL-CRAFT-MIT.txt`; skill `NOTICE.md` | MIT © 2026 Nate Herk | follow MIT |
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1.8.4
1.8.6
24 changes: 24 additions & 0 deletions commands/demo-video.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
---
description: "Manual specialist: demo-video"
---

Load and follow the OpenCode-adapted manual specialist `demo-video` (alias for `id-demo-video`).

Plan and produce an application walkthrough demo video with Indonesian narration using the `id-demo-video` specialist.

Collect the following parameters from user arguments or context:
1. Application target URL (e.g. `http://localhost:3000`)
2. Start command (how to start if offline, e.g. `npm run dev`)
3. Target duration (default: `10:00` / 600 seconds)
4. Voice: `id-ID-GadisNeural` (default, female) or `id-ID-ArdiNeural` (male)
5. Output directory: `demos/<slug>/`

Then load and follow the canonical `id-demo-video` specialist:
- In repository tree: `skills/id-demo-video/SKILL.md`
- After installation: `~/.config/opencode/skills/id-demo-video/SKILL.md`

User arguments:

$ARGUMENTS

Do not substitute another specialist. Do not load this via the skill tool.
13 changes: 0 additions & 13 deletions commands/matt-implement.md

This file was deleted.

13 changes: 0 additions & 13 deletions commands/wait-what.md

This file was deleted.

15 changes: 15 additions & 0 deletions docs/CATALOG-FREEZE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Catalog Freeze Contract (1.8.6)

This contract defines the immutable boundary and governance for the OpenCodeBestFriend catalog following the 1.8.6 modernization closeout.

- **Product version**: 1.8.6
- **Catalog**: 62 names. 47 model-invoked under `skills/`. 15 manual under `manual-skills/` + `commands/`.
- **Retired in this wave and not to be revived**: `ask-matt`, `grilling`, `wait-what`, `matt-implement`.
- **Kept on purpose**: `wizard` (target-app bash wizard), `codebase-design` (new module), `/improve-codebase-architecture` (scan + HTML report).
- **Name collision remains**: `install-anti-slop` = Oxlint; UI/copy filter lives in `impeccable` taste-gate + `humanizer`; `/unslop` = `humanizer`.
- **FOREIGN_ON_DEMAND stays out of the overlay**: `ECC`, `noodle`, `serena`, `stitch`, `reticle`, `ui-skills` MCP, `markitdown` MCP, `exa`, `Caliper`, `SkillEvaluator`. `doctor` must not fail when they are absent.
- **No new allowlist name without retiring one existing name in the same change.**
- **No padding back to 64.**
- **No `/how`, `/poteto-mode`, `/antislop`, `taste-skill`, `axi-core`, `human-atlas`, `awesome-design-md` vendor.**
- **No auto-edit of skills/rules from a learning log. No silent `--auto`.**
- **Next unfreeze requires a human-written exception in CHANGELOG Unreleased that names the retired twin.**
4 changes: 2 additions & 2 deletions docs/architecture.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@
┌───────────────────┼────────────────────┐
▼ ▼ ▼
Skills MCP Rules
48 automatic Codebase Memory Verification
16 manual Context7 Engineering
47 automatic Codebase Memory Verification
15 manual Context7 Engineering
shadcn
Expand Down
6 changes: 4 additions & 2 deletions docs/routing.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ Load `00-routing.md` only when the thin router is not enough. Do not `@`-import

One primary specialist per problem. At most one risk specialist (`full-audit-keamanan` XOR `full-performance-audit`). Availability is not a reason to activate a tool. For mixed requests (e.g. landing + button + video), pick the primary largest surface (typically `impeccable`); motion or video is step 2 after user pick, never a parallel load.

Manual specialists stay behind slash commands. Suggest them when the user names the job. `grilling` is not default; product interviews, glossaries, and ADRs route to `grill-with-docs`. Load `grilling` only if explicitly named.
Manual specialists stay behind slash commands. Suggest them when the user names the job. Product interviews, glossaries, and ADRs route to `grill-with-docs` (including frontier rounds). Spec and ticket implementations stay in-session with `tdd`. Workflow choice is resolved directly via the router without an extra specialist.

Tool reporting:

Expand All @@ -28,8 +28,10 @@ Browser verification follows four explicit doors: exploratory application UI rou

Documents (answer, create, transform, extract, review, PDF/DOCX) route to `smartdoc`. File-to-Markdown ingest routes to `markitdown`. Reusable book/module knowledge routes to `smartbook-ingest`. `/docx` and `/pdf` are missing aliases; nearest is `smartdoc`. `/pptx` is NOT_APPLICABLE. Do not add `commands/pdf.md` or `commands/docx.md`. Impeccable `document` remains DESIGN.md generation.

Prose AI-tell removal and natural tone polishing route to `humanizer` (`/unslop` is its manual alias). Scholarly research, academic manuscripts, and structured peer critique route to `academic`. Deterministic HTML composition rendered to video routes to `hyperframes`. Editorial technical diagrams (HTML/SVG) route to `diagram-design`.
Prose AI-tell removal and natural tone polishing route to `humanizer` (`/unslop` is its manual alias). Scholarly research, academic manuscripts, and structured peer critique route to `academic`. Deterministic HTML composition rendered to video routes to `hyperframes`. Demo video aplikasi, walkthrough layar, narasi Indonesia, dan demo lomba route to `id-demo-video` (bukan `hyperframes` untuk durasi panjang utuh, bukan `playwright-qa`, bukan `visual-studio`). Kartu judul HTML→MP4 tetap `hyperframes`. Editorial technical diagrams (HTML/SVG) route to `diagram-design`.

Warehouse diagnostics load only when the user names the job: `agent-architecture-audit` (architecture layers), `cost-aware-llm-pipeline` (token budgeting), `eval-harness` (benchmarks), `prompt-optimizer` (prompt refinement), and `skill-stocktake` (catalog hygiene). Wave 3 warehouse procedures route to `api-design` (REST resources), `contract-first` (consumer/provider contracts), `automation-audit-ops` (live inventory), and `code-tour` (guided tours). Foreign harnesses (such as ECC control plane) remain `FOREIGN_ON_DEMAND`; never vendored, auto-merged, or shadowed.

Operational stack adapters route to `supabase-ops` (Supabase Auth/RLS/migrations/Edge Functions), `mongodb-ops` (MongoDB schemas/indexing/aggregation), and `vercel-ops` (Vercel hosting/deploy config). These operational skills never generate visual UI and never replace `found-this-design` or `impeccable`. FOREIGN vendor packs stay off the overlay; user may npx skills add mongodb/agent-skills|supabase/agent-skills locally; never frontend-design for product UI.

Architecture and comprehension routes: how it works / where it lives routes to Codebase Memory, then `code-tour`; architectural rationale routes to manual `/why`; break risk routes to manual `/blast-radius`. Generic AI UI aesthetics route to `impeccable` taste-guard (never `install-anti-slop`); generic AI prose routes to `humanizer` (`/unslop`); TypeScript static linting routes strictly to `install-anti-slop` upon explicit request. A `DESIGN.md` without a Design Bank match still filters slop without inventing brand assets. Pstack playbooks route to existing specialists (no `/poteto-mode`). Foreign harness control planes or continual learning loops that attempt to mutate `AGENTS.md` or skill definitions are strictly rejected.
6 changes: 3 additions & 3 deletions docs/skills.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@

Policy: `vendor/skill-policy.json` plus `vendor/skill-allowlist.txt`.

- 48 model-invoked skills live under `skills/` and install to `~/.config/opencode/skills/` (core + Wave 2/3 warehouse specialists)
- 16 manual skills live under `manual-skills/` and install to `~/.config/opencode/bestfriend/skills/` plus `commands/`
- 47 model-invoked skills live under `skills/` and install to `~/.config/opencode/skills/` (core + Wave 2/3 warehouse specialists)
- 15 manual skills live under `manual-skills/` and install to `~/.config/opencode/bestfriend/skills/` plus `commands/`

`smartdoc` is per-job document intelligence. `markitdown` converts Office/PDF/HTML/CSV/XLSX/PPTX/EPUB/ZIP to Markdown for ingest; SmartDoc keeps contract/QA/render. `smartbook-ingest` compiles reusable local knowledge. `humanizer` cleans user-facing prose tells (`/unslop` is its manual alias). `academic` manages scholarly research, writing, and peer review. `hyperframes` handles deterministic HTML-to-MP4 video composition. `diagram-design` crafts editorial HTML/SVG diagrams. `img2threejs` reconstructs procedural Three.js models from reference images. Warehouse diagnostics include `agent-architecture-audit` (agent stack layers), `cost-aware-llm-pipeline` (token budgeting), `eval-harness` (benchmarks), `prompt-optimizer` (prompt refinement), and `skill-stocktake` (catalog hygiene). Wave 3 adds `api-design`, `contract-first`, `automation-audit-ops`, `code-tour`, and `click-path-audit`. Handwriting is a SmartDoc renderer, not a skill.
`smartdoc` is per-job document intelligence. `markitdown` converts Office/PDF/HTML/CSV/XLSX/PPTX/EPUB/ZIP to Markdown for ingest; SmartDoc keeps contract/QA/render. `smartbook-ingest` compiles reusable local knowledge. `humanizer` cleans user-facing prose tells (`/unslop` is its manual alias). `academic` manages scholarly research, writing, and peer review. `hyperframes` handles deterministic HTML-to-MP4 video composition. `id-demo-video` coordinates Indonesian application demo video production (`/demo-video` is its manual slash command). `diagram-design` crafts editorial HTML/SVG diagrams. `img2threejs` reconstructs procedural Three.js models from reference images. Warehouse diagnostics include `agent-architecture-audit` (agent stack layers), `cost-aware-llm-pipeline` (token budgeting), `eval-harness` (benchmarks), `prompt-optimizer` (prompt refinement), and `skill-stocktake` (catalog hygiene). Wave 3 adds `api-design`, `contract-first`, `automation-audit-ops`, `code-tour`, and `click-path-audit`. Handwriting is a SmartDoc renderer, not a skill.

OpenCode 1.18.x has no `disable-model-invocation` field. Manual skills must not be copied into the discovered skills directory.

Expand Down
Loading
Loading