From 66357dcda19b336f541cc222b8d9ea7db0aa8606 Mon Sep 17 00:00:00 2001 From: Fahmi Harun <34875577+kuker24@users.noreply.github.com> Date: Thu, 1 Oct 2026 10:19:25 +0700 Subject: [PATCH] =?UTF-8?q?feat(wave):=200.1.8=20catalog=20swap=20?= =?UTF-8?q?=E2=80=94=20business-motion-film=20+=20ninerouter?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 15 ++++++ README.md | 29 ++++++++-- THIRD_PARTY_NOTICES.md | 4 +- VERSION | 2 +- docs/CATALOG-FREEZE.md | 7 +-- docs/mcp.md | 1 + docs/routing.md | 9 ++-- docs/skills.md | 4 +- docs/source-wave.md | 14 +++++ docs/warehouse-inventory.md | 4 +- rules/00-routing.md | 13 ++--- skills/business-motion-film/NOTICE.md | 8 +++ skills/business-motion-film/SKILL.md | 41 ++++++++++++++ skills/cost-aware-llm-pipeline/SKILL.md | 4 +- skills/img2threejs/NOTICE.md | 10 ---- skills/img2threejs/SKILL.md | 50 ----------------- skills/ninerouter/NOTICE.md | 6 +++ skills/ninerouter/SKILL.md | 53 +++++++++++++++++++ skills/prompt-optimizer/NOTICE.md | 8 --- skills/prompt-optimizer/SKILL.md | 50 ----------------- skills/prompt-optimizer/references/rubric.md | 27 ---------- skills/skill-stocktake/SKILL.md | 6 +-- .../skill-stocktake/references/checklist.md | 2 +- .../references/route-checklist.md | 8 +-- templates/AGENTS.md | 6 +-- tests/test_evaluation_matrix.py | 31 +++++------ tests/test_routing.py | 38 ++++++++----- tests/test_skills.py | 2 +- vendor/license-audit.json | 10 ++-- .../licenses/ECHRIS6-MOTION-VIDEO-KIT-MIT.txt | 21 ++++++++ vendor/provenance.json | 22 +++++--- vendor/skill-allowlist.txt | 4 +- vendor/skill-policy.json | 12 ++--- vendor/sources.json | 18 ++++++- 34 files changed, 307 insertions(+), 232 deletions(-) create mode 100644 skills/business-motion-film/NOTICE.md create mode 100644 skills/business-motion-film/SKILL.md delete mode 100644 skills/img2threejs/NOTICE.md delete mode 100644 skills/img2threejs/SKILL.md create mode 100644 skills/ninerouter/NOTICE.md create mode 100644 skills/ninerouter/SKILL.md delete mode 100644 skills/prompt-optimizer/NOTICE.md delete mode 100644 skills/prompt-optimizer/SKILL.md delete mode 100644 skills/prompt-optimizer/references/rubric.md create mode 100644 vendor/licenses/ECHRIS6-MOTION-VIDEO-KIT-MIT.txt diff --git a/CHANGELOG.md b/CHANGELOG.md index 023155a..8be4fa6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,20 @@ # Changelog +## 0.1.8 — 2026-10-01 + +Unfreeze terbatas 0.1.8. Katalog tetap 65. +RETIRE allowlist name: img2threejs (ilmu Three.js pindah, nama skill dihapus). +ADD model-invoked: business-motion-film (dari echris6/motion-video-kit, MIT, pin commit yang kamu verifikasi di vendor/sources.json + provenance + license-audit + THIRD_PARTY_NOTICES). +ADD model-invoked gateway: ninerouter (first-party stub, bukan salinan 9 file upstream). +RETIRE kedua: prompt-optimizer (tumpang tindih research + humanizer). +Hasil: 50 model + 15 manual = 65. Tidak ada padding. + +- Intent `img3d` diganti dua intent tertutup: `launch_film` dan `gateway_llm` (total intent tertutup: 24). +- `business-motion-film`: Iklan, launch film, explainer bisnis, sample reel, dan pitch video. Render tetap lewat `hyperframes`. Pola Three.js product-hero pindah ke referensi `business-motion-film`, bukan skill sendiri. Brag 18s tetap `skills/hyperframes/references/brag.md`. Narasi Indonesia tetap `id-demo-video`. +- `ninerouter`: First-party stub untuk gateway 9Router user via `NINEROUTER_URL` (default `http://127.0.0.1:20128`) dan `NINEROUTER_KEY`. Fail-closed jika URL mengandung `0.0.0.0`. Bukan core MCP; absen gateway menghasilkan `NOT_CONFIGURED`, bukan kegagalan doctor. Capability on-demand, tidak divendor. +- Pensiun `img2threejs` dan `prompt-optimizer`: dihapus dari allowlist, policy, routing, AGENTS.md, docs, dan warehouse inventory. Kritik prompt ditangani `humanizer` (prosa), `research` / Context7 (fakta), `writing-for-agents` (struktur agent), dan `eval-harness` (benchmark pass@k). +- Katalog kembali dibekukan pada 65 (50 model + 15 manual). Versi produk 0.1.8. + ## 0.1.7 — 2026-09-28 Unfreeze exception (human-written): catalog grows **62 → 65** to add modern specialists `json-render`, `deck-design`, and `pageindex`. **No twin retired.** No silent padding. UI doctrines remain MERGE’d into `impeccable` / `emil-design-eng`. `react-doctor` stays OPTIONAL_TOOL (not a 4th skill). Closed intent set grows by three: `generative_ui`, `slides_pptx`, `longdoc_nav`. diff --git a/README.md b/README.md index 54997c5..3e7fe05 100644 --- a/README.md +++ b/README.md @@ -4,19 +4,19 @@ OpenCode 2 overlay: 65 frozen routed skills, thin `AGENTS.md`, `opencode-he`. Installer and runtime overlay for [OpenCode 2](https://opencode.ai/v2/docs/). -Version **0.1.7**. The 65-skill catalog is strictly frozen. +Version **0.1.8**. The 65-skill catalog is strictly frozen. ## What it is - 65 skills: 50 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, 23 closed intents) +- A thin `AGENTS.md` router (lazy, one primary specialist, 24 closed intents) - Core MCP: Codebase Memory, Context7, shadcn - 12 Universal Design Banks (34,500+ items across Identity, Motion, Section, Atomic) with zero-token local search & Google Drive v2 bootstrap - Design Bank path resolution via `~/.config/opencode/highend/config/design-bank.json` - Explicit specialist handoff graph (`found-this-design` pin → `impeccable` → `playwright-qa` verify edge) - Evidence-blocked done-gate (`FACT:` / `JUDGMENT:`) via verification rules + `/decision-log` - UI polish checklists merged into `emil-design-eng` + practical a11y & React smell checklist in `impeccable` (`react-doctor` as on-demand `OPTIONAL_TOOL`) -- Generative UI from typed schemas via `json-render`, consulting slide factories via `deck-design`, vectorless tree-reasoning long-doc nav via `pageindex` +- Generative UI from typed schemas via `json-render`, consulting slide factories via `deck-design`, vectorless tree-reasoning long-doc nav via `pageindex`, commercial launch films via `business-motion-film`, gateway routing via `ninerouter` - Core MCP pins: Codebase Memory **0.11.0** (tarball and inner-binary SHA-256) and `shadcn@4.21.0` - Email design is an Impeccable reference, not a new skill (raw HTML uses tables; React Email / MJML may use framework components) - Emil motion doctrines live under `emil-design-eng` references (not extra skills) @@ -117,7 +117,8 @@ Default: repository evidence first. Then at most one specialist. | Photoreal / media | `visual-studio` | | Scroll-led storytelling | `scroll-craft` | | Scroll-driven 3D / camera world | `scroll-world` | -| Procedural Three.js object from image | `img2threejs` | +| Commercial launch films & business explainers | `business-motion-film` (render via `hyperframes`; absorbs Three.js product-hero patterns) | +| 9Router gateway (inference/image/video/TTS/STT/web) | `ninerouter` | | Deterministic HTML composition video | `hyperframes` (18s brag card via `references/brag.md`) | | Demo video aplikasi & narasi ID | `id-demo-video` (`/demo-video`) | | Browser | `playwright-qa` (isolated verification edge; evidence ledger) → `browser-act` → `chrome-devtools-axi` → `click-path-audit` | @@ -132,7 +133,7 @@ Default: repository evidence first. Then at most one specialist. | TS Oxlint install | `install-anti-slop` (explicit only) | | Architecture bake-off | `/architect` (manual) | -Warehouse: `api-design`, `contract-first`, `automation-audit-ops`, `code-tour`, `click-path-audit` (plus Wave 2 diagnostics). Wave 0.1.7 additions: `json-render` (generative UI from typed catalogs), `deck-design` (consulting-grade PPTX & 16:9 HTML slide decks), `pageindex` (vectorless tree-reasoning long document navigation). +Warehouse: `api-design`, `contract-first`, `automation-audit-ops`, `code-tour`, `click-path-audit` (plus Wave 2 diagnostics). Wave 0.1.7 additions: `json-render` (generative UI from typed catalogs), `deck-design` (consulting-grade PPTX & 16:9 HTML slide decks), `pageindex` (vectorless tree-reasoning long document navigation). Wave 0.1.8 additions: `business-motion-film` (commercial launch films; retires `img2threejs`), `ninerouter` (multi-provider gateway stub; retires `prompt-optimizer`). Examples: interactive product story told by scroll → `scroll-craft`. Unbroken camera through a miniature factory → `scroll-world`. Clean security dashboard → `impeccable`. Video, image generation, and Design V2 stay optional. @@ -192,6 +193,24 @@ NVIDIA SkillEvaluator is `FOREIGN_ON_DEMAND` in the same sense: a maintainer may The installer merges only owned MCP keys. Provider, model, permissions, plugins, and foreign MCP stay yours. +### Provider configuration (User-owned) + +OpenCode model providers belong to the user. The installer never overwrites your `provider` block. If you use a 9Router gateway instance (`skills/ninerouter`), configure your provider in `~/.config/opencode/opencode.jsonc` using environment variables only: + +```jsonc +{ + "provider": { + "9router": { + "type": "openai", + "baseUrl": "{env:NINEROUTER_URL}/v1", + "apiKey": "{env:NINEROUTER_KEY}" + } + } +} +``` + +Never hardcode secret keys or bind all interfaces. + ## Design Bank (12 Universal Banks) Design Bank media is **not** vendored in this repository. Redistribution of the media archive is not cleared as first-party content. diff --git a/THIRD_PARTY_NOTICES.md b/THIRD_PARTY_NOTICES.md index bb6ddaa..75b3626 100644 --- a/THIRD_PARTY_NOTICES.md +++ b/THIRD_PARTY_NOTICES.md @@ -33,7 +33,9 @@ Machine-readable copy: `vendor/license-audit.json`. | `diagram-design` | [cathrynlavery/diagram-design](https://github.com/cathrynlavery/diagram-design); skill `NOTICE.md` | MIT © 2024-2026 Cathryn Lavery contributors | follow MIT | | Email design doctrine | Merged from [CosmoBlk/email-design](https://github.com/CosmoBlk/email-design) (MIT © 2026 CosmoBlk), [jayesh-bansal/email-pro-max](https://github.com/jayesh-bansal/email-pro-max) (MIT © 2026 Jayesh Bansal), [chunkydotdev/email-skills](https://github.com/chunkydotdev/email-skills) (MIT © 2026 chunkydotdev), and [Olshansk/agent-skills](https://github.com/Olshansk/agent-skills) (MIT © 2026 Olshansk) into `skills/impeccable/reference/email.md` | MIT | follow MIT | | Emil Kowalski motion doctrines | Merged from [emilkowalski/skills](https://github.com/emilkowalski/skills) (`85e8e2363b71`) into `skills/emil-design-eng/references/` (`motion.md`, `apple-principles.md`, `native-motion.md`, `interface-feel.md`). Text: `vendor/licenses/EMILKOWALSKI-MIT.txt` | MIT © 2026 Emil Kowalski | follow MIT | -| Warehouse Batch 2a (`agent-architecture-audit`, `cost-aware-llm-pipeline`, `eval-harness`, `prompt-optimizer`, `skill-stocktake`) | Adapted from [affaan-m/ECC](https://github.com/affaan-m/ECC); respective skill `NOTICE.md` files | MIT © 2024-2026 affaan-m and ECC contributors | follow MIT | +| Warehouse Batch 2a (`agent-architecture-audit`, `cost-aware-llm-pipeline`, `eval-harness`, `skill-stocktake`) | Adapted from [affaan-m/ECC](https://github.com/affaan-m/ECC); respective skill `NOTICE.md` files (prompt-optimizer retired in 0.1.8) | MIT © 2024-2026 affaan-m and ECC contributors | follow MIT | +| `business-motion-film` | [echris6/motion-video-kit](https://github.com/echris6/motion-video-kit) `255562b` — `vendor/licenses/ECHRIS6-MOTION-VIDEO-KIT-MIT.txt`; skill `NOTICE.md` | MIT © 2026 echris6 | follow MIT | +| `ninerouter` | [decolua/9router](https://github.com/decolua/9router) `f01fb90`; skill `NOTICE.md`. First-party gateway stub; skills on-demand. | MIT © 2026 decolua | follow MIT | | Warehouse Batch 3a (`api-design`, `automation-audit-ops`, `click-path-audit`, `code-tour`, `contract-first`) | Adapted from [affaan-m/ECC](https://github.com/affaan-m/ECC); respective skill `NOTICE.md` files | MIT © 2024-2026 affaan-m and ECC contributors | follow MIT | | Design bank media | User-provided public bootstrap artifact or existing local bank | **not cleared** | not in git; normal install does not download it | | Codebase Memory, serena, browser-act CLI, semgrep, gitleaks, osv-scanner | `vendor/sources.json` | upstream | follow upstream | diff --git a/VERSION b/VERSION index 1180819..699c6c6 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.1.7 +0.1.8 diff --git a/docs/CATALOG-FREEZE.md b/docs/CATALOG-FREEZE.md index 3076cae..763465e 100644 --- a/docs/CATALOG-FREEZE.md +++ b/docs/CATALOG-FREEZE.md @@ -2,13 +2,14 @@ This contract defines the immutable boundary and governance for the OpenCodeHighEnd catalog. The 65-skill catalog is strictly frozen. -- **Product version**: 0.1.7 +- **Product version**: 0.1.8 - **Catalog**: 65 names. 50 model-invoked under `skills/`. 15 manual under `manual-skills/` + `commands/`. -- **Wave 0.1.7 unfreeze exception** (CHANGELOG 0.1.7): catalog grew 62 → 65 to add `json-render`, `deck-design`, `pageindex`. No twin retired. UI doctrines remain MERGE’d. `react-doctor` stays OPTIONAL_TOOL. +- **Wave 0.1.8 limited unfreeze exception** (CHANGELOG 0.1.8): catalog stays 65 (50 model + 15 manual). Retired names: `img2threejs` (Three.js product-hero patterns moved to `business-motion-film` references), `prompt-optimizer` (overlaps `research` + `humanizer`). Added model-invoked: `business-motion-film` (from `echris6/motion-video-kit`, MIT), `ninerouter` (first-party gateway stub). Intent `img3d` replaced by `launch_film | gateway_llm`. This exception is spent. +- **Wave 0.1.7 unfreeze exception** (CHANGELOG 0.1.7): catalog grew 62 → 65 to add `json-render`, `deck-design`, `pageindex`. No twin retired. (Spent). - **Retired in prior waves 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, `crawl4ai` MCP, `exa`, `Caliper`, `SkillEvaluator`, PageIndex Cloud MCP. `doctor` must not fail when they are absent. +- **FOREIGN_ON_DEMAND stays out of the overlay**: `ECC`, `noodle`, `serena`, `stitch`, `reticle`, `ui-skills` MCP, `markitdown` MCP, `crawl4ai` MCP, `exa`, `Caliper`, `SkillEvaluator`, PageIndex Cloud MCP, `9router` capability skills. `doctor` must not fail when they are absent. - **No new allowlist name without retiring one existing name in the same change**, except a human-written CHANGELOG exception (the 0.1.7 growth is that exception; it is spent). - **No padding back to 64.** - **No `/how`, `/poteto-mode`, `/antislop`, `taste-skill`, `axi-core`, `human-atlas`, `awesome-design-md` vendor.** diff --git a/docs/mcp.md b/docs/mcp.md index 67ee3e3..8ee8622 100644 --- a/docs/mcp.md +++ b/docs/mcp.md @@ -44,3 +44,4 @@ Doctor reports `CONFIGURED` for owned MCP entries present in config. That is not - **TypeSafe MCP (`itsmostafa/typesafe-mcp`)** — Evaluated and **REJECTED** as an extra core MCP. Core MCPs remain strictly `codebase-memory-mcp`, `context7`, and `shadcn`. - **Graphiti (`getzep/graphiti`) & Cognee (`topoteretes/cognee`)** — Evaluated and **REJECTED** as external memory MCP servers. Complex graph databases and temporal entity graph memory requiring separate backends/services are out of scope. Codebase indexing and symbol memory is strictly owned by `codebase-memory-mcp` (v0.11.0). Core MCPs remain strictly `codebase-memory-mcp`, `context7`, and `shadcn`. - **PageIndex Cloud MCP (`VectifyAI/PageIndex`)** — Skill `pageindex` is a first-party wrapper for tree/reasoning long-doc navigation. The Cloud/hosted MCP is **REJECTED** as an extra core MCP. Do not register it. Missing local SDK is `NOT_CONFIGURED` on the skill, not a doctor failure. +- **9Router Gateway (`decolua/9router`)** — 9Router is a `FOREIGN_ON_DEMAND` gateway, NOT a core MCP server. Core MCP servers remain strictly `codebase-memory-mcp` (0.11.0), `context7`, and `shadcn` (@4.21.0). First-party gateway stub lives in `skills/ninerouter/SKILL.md` connecting via `{env:NINEROUTER_URL}` (default `http://127.0.0.1:20128`). Upstream capability skills are fetched on demand and not vendored. Absence of a running gateway reports `NOT_CONFIGURED` on the skill, never an installer or `doctor` failure. Never bind to `0.0.0.0`. diff --git a/docs/routing.md b/docs/routing.md index 9dd5de8..7d4cad4 100644 --- a/docs/routing.md +++ b/docs/routing.md @@ -18,7 +18,7 @@ Every user request is classified into exactly one closed intent: ```text repo_understand | bug | security | perf | ui_direction | ui_implement | generative_ui -motion | scroll_2d | scroll_3d | img3d | docs | ingest_md | prose +motion | scroll_2d | scroll_3d | launch_film | gateway_llm | docs | ingest_md | prose academic | longdoc_nav | browser_qa | architecture | warehouse | ops_data | video_html | demo_id | slides_pptx ``` @@ -35,7 +35,8 @@ academic | longdoc_nav | browser_qa | architecture | warehouse | ops_data | vide | `motion` | `emil-design-eng` | Micro-interactions, spring physics, touch feel | | `scroll_2d` | `scroll-craft` | Scrollytelling, pinned 2D timelines, scroll triggers | | `scroll_3d` | `scroll-world` | Continuous 3D fly-through, camera-scrub worlds | -| `img3d` | `img2threejs` | Procedural Three.js models from reference images | +| `launch_film` | `business-motion-film` | Commercials, launch films, business explainers, sample reels; render via hyperframes; product-hero Three.js in references | +| `gateway_llm` | `ninerouter` | 9Router gateway (chat, image, video, TTS, STT, embeddings, web) via NINEROUTER_URL; foreign on-demand stub | | `docs` | `smartdoc` | Technical docs, OCR/PDF/DOCX extraction & contracts | | `slides_pptx` | `deck-design` | Consulting PPTX / 16:9 HTML decks; smartdoc keeps PDF/DOCX; markitdown keeps ingest | | `ingest_md` | `markitdown` | Structure-preserving Markdown ingest from Office/PDF | @@ -79,7 +80,7 @@ MANUAL_NOT_INVOKED Never list unused tools as used. -UI direction from the bank routes to `found-this-design` first, which stops before component implementation. Visual UI and UI atoms (buttons, inputs, cards, nav) route to `impeccable` after Design V2 shortlist; BANK_MISS ≠ generate (+ shadcn/Design V2 internal). Stitch MCP is for screen/comp generation only, then found-this-design or impeccable with Design V2 atom shortlisting; never implement production UI from Stitch alone. UI Skills MCP is design-skill lookup only; product UI remains Design Bank + Impeccable + Design V2 atoms + shadcn; BANK_MISS ≠ generate from a random ui-skills document. Motion UI routes to `emil-design-eng`. Still/ads/non-UI surface route to `visual-studio`. Scroll-led stories route to `scroll-craft`, while continuous camera 3D fly-throughs route to `scroll-world`. Procedural Three.js object models from reference images route to `img2threejs`. Schema/JSON generative UI from a typed catalog routes to `json-render` (after tokens/direction or internal schema UI; never bypass Design Bank for marketing). +UI direction from the bank routes to `found-this-design` first, which stops before component implementation. Visual UI and UI atoms (buttons, inputs, cards, nav) route to `impeccable` after Design V2 shortlist; BANK_MISS ≠ generate (+ shadcn/Design V2 internal). Stitch MCP is for screen/comp generation only, then found-this-design or impeccable with Design V2 atom shortlisting; never implement production UI from Stitch alone. UI Skills MCP is design-skill lookup only; product UI remains Design Bank + Impeccable + Design V2 atoms + shadcn; BANK_MISS ≠ generate from a random ui-skills document. Motion UI routes to `emil-design-eng`. Still/ads/non-UI surface route to `visual-studio`. Scroll-led stories route to `scroll-craft`, while continuous camera 3D fly-throughs route to `scroll-world`. Commercials, launch films, business explainers, sample reels, and pitch videos route to `business-motion-film` (render via hyperframes; Three.js product-hero patterns in references; 18s brag cards stay in `hyperframes/references/brag.md`). Schema/JSON generative UI from a typed catalog routes to `json-render` (after tokens/direction or internal schema UI; never bypass Design Bank for marketing). Browser verification follows four explicit doors: exploratory application UI routes to `playwright-qa`, persistent multi-account sessions route to `browser-act`, observed Chromium cause routes to `chrome-devtools-axi`, and button handler sequential undo / shared-store side effects route to `click-path-audit`. @@ -87,7 +88,7 @@ Documents (answer, create, transform, extract, review, PDF/DOCX) route to `smart 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. +Warehouse diagnostics load only when the user names the job: `agent-architecture-audit` (architecture layers), `cost-aware-llm-pipeline` (token budgeting), `eval-harness` (benchmarks), and `skill-stocktake` (catalog hygiene; `prompt-optimizer` retired in 0.1.8 with prompt critique splitting to `humanizer` / `research` / `writing-for-agents`). Gateway 9Router routing (chat, image, video, TTS, STT, embeddings, web search) routes to `ninerouter` via `NINEROUTER_URL` (not an extra core MCP). 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. diff --git a/docs/skills.md b/docs/skills.md index 270de23..1aaf2ef 100644 --- a/docs/skills.md +++ b/docs/skills.md @@ -2,10 +2,10 @@ Policy: `vendor/skill-policy.json` plus `vendor/skill-allowlist.txt`. -- 50 model-invoked skills live under `skills/` and install to `~/.config/opencode/skills/` (core + Wave 2/3 warehouse specialists + 0.1.7 `json-render`, `deck-design`, `pageindex`) +- 50 model-invoked skills live under `skills/` and install to `~/.config/opencode/skills/` (core + Wave 2/3 warehouse specialists + 0.1.7 `json-render`, `deck-design`, `pageindex` + 0.1.8 `business-motion-film`, `ninerouter`) - 15 manual skills live under `manual-skills/` and install to `~/.config/opencode/highend/skills/` plus `commands/` -`smartdoc` is per-job document intelligence. `deck-design` owns consulting PPTX / 16:9 HTML slide decks. `pageindex` owns tree/reasoning navigation of long structured documents. `json-render` owns schema/JSON generative UI after tokens/direction (or internal schema UI). `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. +`smartdoc` is per-job document intelligence. `deck-design` owns consulting PPTX / 16:9 HTML slide decks. `pageindex` owns tree/reasoning navigation of long structured documents. `json-render` owns schema/JSON generative UI after tokens/direction (or internal schema UI). `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. `business-motion-film` plans and quality-checks commercial launch films and explainers (rendered via hyperframes; absorbs Three.js product-hero patterns). `ninerouter` routes models, images, video, speech, and web tools through a 9Router gateway. Warehouse diagnostics include `agent-architecture-audit` (agent stack layers), `cost-aware-llm-pipeline` (token budgeting), `eval-harness` (benchmarks), and `skill-stocktake` (catalog hygiene; `prompt-optimizer` retired in 0.1.8 with prompt refinement handled by humanizer, research, and writing-for-agents). 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 2 discovers `~/.config/opencode/skills` and project `.opencode/skills`. Manual skills must not be copied into those directories; they live under `~/.config/opencode/highend/skills/` and are invoked only as `~/.config/opencode/commands/.md` (or project `.opencode/commands/.md`). diff --git a/docs/source-wave.md b/docs/source-wave.md index a1e004d..9379b06 100644 --- a/docs/source-wave.md +++ b/docs/source-wave.md @@ -57,3 +57,17 @@ Recorded per Phase 0 contract. | [THU-MAIC/OpenMAIC](https://github.com/THU-MAIC/OpenMAIC) + [Tencent/WeKnora](https://github.com/Tencent/WeKnora) + [open-webui/open-webui](https://github.com/open-webui/open-webui) + [QwenAudio/qwen-audio-agent](https://github.com/QwenAudio/qwen-audio-agent) | upstream refs | Multi-agent research suites, enterprise RAG platforms, web UI shells, and specialized audio agent models. | **REJECT** | None | Monolithic SaaS/RAG platforms and specialized modal model architectures. Outside the scope of OpenCodeHighEnd. PageIndex is a separate MIT source (see ADD/DONE row). | | [VectifyAI/PageIndex](https://github.com/VectifyAI/PageIndex) | `037a7dbacfb9a19f38b354ce60cee5094b3f854c` | Vectorless tree/reasoning RAG for long documents. MIT. | **DONE** | `skills/pageindex` | First-party wrapper. Local tree-then-reason; SDK optional on the user machine. Cloud MCP not registered. Not Graphiti/Cognee/second codebase-memory. Degrade `NOT_CONFIGURED`. | | [jakubkrehel/better-interface](https://ui-skills.com) | ui-skills upstream | Tactile interface guidelines (no hairline-only affordances, contrast boundaries). MIT. | **MERGE** | `skills/emil-design-eng/references/interface-feel.md` | Key tactile checklist item ("No Hairline-Only Affordances") merged into `interface-feel.md`. No new skill folder. | +| [echris6/motion-video-kit](https://github.com/echris6/motion-video-kit) | `255562b04b1e5ecaa4ba98e5c9aa191d5ba7f6fa` | AI-assisted short commercial kit: independent critic loop, motion principles, quality bar, audio rules, Three.js product-hero patterns. MIT. | **ADD** | `skills/business-motion-film` | Added in 0.1.8 (retires `img2threejs`). First-party wrapper; references pinned upstream. Render via hyperframes. Three.js product hero patterns absorbed here. | +| [decolua/9router](https://github.com/decolua/9router) | `f01fb909e37189008080632ddaf404f096345cde` | Unlimited multi-provider LLM gateway, fallbacks, image/video gen, TTS, STT, embeddings, web tools. MIT. | **ADD** | `skills/ninerouter` | Added in 0.1.8 as first-party gateway stub (retires `prompt-optimizer`). Upstream capability skills fetched on demand. Configured via NINEROUTER_URL. Not an extra core MCP. | +| [obra/superpowers](https://github.com/obra/superpowers) | upstream ref | Agent coding superpowers, workflows, and skills. | **MERGE** | `skills/tdd`, `skills/grill-with-docs` | Workflow discipline merged into existing TDD and planning specialists; not a new skill. | +| [anthropics/skills](https://github.com/anthropics/skills) | upstream ref | Official Anthropic Claude skill library. | **MERGE** | `skills/impeccable`, `skills/humanizer` | Merged into existing specialists; no duplicate skill names. | +| [UI-UX-Pro-Max](https://github.com) | upstream ref | UI/UX design prompts, principles, and guidelines. | **MERGE** | `skills/impeccable`, `skills/emil-design-eng` | Design heuristics merged into Impeccable/Emil design references; not a standalone skill. | +| [Last30Days](https://github.com) | upstream ref | Time-bounded recent research and trend queries. | **MERGE** | `skills/research` | Search discipline merged into research; not a new skill. | +| [Marketing](https://github.com) | upstream ref | Marketing copy and product launch playbooks. | **MERGE** | `skills/business-motion-film`, `skills/humanizer` | Merged into business-motion-film and humanizer; not a separate skill. | +| [Planning-with-files](https://github.com) | upstream ref | File-based planning and tracking workflow. | **MERGE** | `manual-skills/decision-log`, `rules/01-verification.md` | File-based planning absorbed in decision-log and verification rules. | +| [Graphify](https://github.com) | upstream ref | Graph-based codebase indexer. | **REJECT** | None | Codebase graph ownership strictly belongs to `codebase-memory-mcp`. | +| [Claude-Mem](https://github.com) | upstream ref | Persistent background memory daemon for agents. | **REJECT** | None | Monolithic memory daemon rejected. Codebase Memory MCP owns repo symbols; session trails stay in `/decision-log`. | +| [OpenMontage](https://github.com) | upstream ref | Automated video montage and compilation pipeline. | **REJECT** | None | Reject monolithic video platform. Deterministic video composition is owned by `hyperframes` / `business-motion-film`. | +| [Skill Seekers](https://github.com) | upstream ref | Automatic skill discovery, extraction, and scraper. | **REJECT** | None | Automated skill scraping bloat rejected. Catalog is strictly frozen at 65. | +| [adhd](https://github.com) | upstream ref | Divergent ideation specialist for coding agents. MIT. | **DONE** | `skills/adhd` | Sudah dimiliki (shipped in foundation). | +| [SkillSpector](https://github.com) | upstream ref | Skill catalog evaluation and quality inspection. | **FOREIGN_ON_DEMAND** | `docs/mcp.md` | External evaluation tool; not vendored into overlay core. | diff --git a/docs/warehouse-inventory.md b/docs/warehouse-inventory.md index 57451d1..9cf5da2 100644 --- a/docs/warehouse-inventory.md +++ b/docs/warehouse-inventory.md @@ -276,7 +276,7 @@ This inventory establishes the contract for warehouse skills across the five ana | `affaan-m/ECC` | `production-audit` | **MERGE** | `full-audit-keamanan` | MERGE into full-audit-keamanan / performance-audit | `-` | | `affaan-m/ECC` | `production-scheduling` | **REJECT** | `-` | Third-party vendor operations and niche business workflows; reject proprietary automation | `-` | | `affaan-m/ECC` | `project-flow-ops` | **DEFER** | `-` | Specialized domain procedure deferred for future warehouse wave evaluation | `-` | -| `affaan-m/ECC` | `prompt-optimizer` | **NEW** | `prompt-optimizer` | Advisory prompt optimizer for structural clarity and boundary constraints; does not auto-mutate installed skills | `2a` | +| `affaan-m/ECC` | `prompt-optimizer` | **RETIRED** | `-` | Advisory prompt optimizer retired in wave 0.1.8; capability absorbed by humanizer, research, and writing-for-agents | `2a` | | `affaan-m/ECC` | `python-patterns` | **REJECT** | `-` | Language/framework pattern sprawl already covered by repo context + Context7 docs | `-` | | `affaan-m/ECC` | `python-testing` | **REJECT** | `-` | Language/framework pattern sprawl already covered by repo context + Context7 docs | `-` | | `affaan-m/ECC` | `pytorch-patterns` | **REJECT** | `-` | Harness control plane / autonomous loop / host adapter runtime; reject vendor runtime | `-` | @@ -359,7 +359,7 @@ Evaluation and disposition contract for the AI LABS 8-repo wave (procedural 3D, | Candidate / Repo | Decision | BestFriend Target | Reason | | :--- | :---: | :--- | :--- | -| `img2threejs` | **NEW** | `skills/img2threejs` | Procedural Three.js TypeScript Group reconstruction from reference object image; quality-gated, no downloaded mesh blobs. | +| `img2threejs` | **RETIRED** | `-` | Procedural Three.js patterns transferred to business-motion-film references; standalone skill retired in wave 0.1.8. | | `reticle` | **FOREIGN_ON_DEMAND** | `mcp.reticle` | Optional visual perception MCP (`npx -y @reticlehq/server mcp`). Server licensed under FSL-1.1-ALv2; not vendored. Perception only, never auto-implementer. | | `chisel` (hooks) | **REJECT** | `-` | Session/prompt/tool hooks coupled to Claude Code runtime. Context Guard remains NOT_PORTED. | | `ui-skills` | **FOREIGN_ON_DEMAND** | `mcp.ui-skills` | Optional remote MCP (`https://www.ui-skills.com/mcp`) for design-skill lookup only. Product UI remains Design Bank + Impeccable + Design V2 + shadcn. | diff --git a/rules/00-routing.md b/rules/00-routing.md index 2400a41..d226fa0 100644 --- a/rules/00-routing.md +++ b/rules/00-routing.md @@ -27,7 +27,7 @@ The router classifies every user task into exactly one closed intent: ```text repo_understand | bug | security | perf | ui_direction | ui_implement | generative_ui -motion | scroll_2d | scroll_3d | img3d | docs | ingest_md | prose +motion | scroll_2d | scroll_3d | launch_film | gateway_llm | docs | ingest_md | prose academic | longdoc_nav | browser_qa | architecture | warehouse | ops_data | video_html | demo_id | slides_pptx ``` @@ -44,7 +44,8 @@ academic | longdoc_nav | browser_qa | architecture | warehouse | ops_data | vide | `motion` | `emil-design-eng` | Micro-interactions, spring physics, touch feel | | `scroll_2d` | `scroll-craft` | Scrollytelling, pinned 2D timelines, scroll triggers | | `scroll_3d` | `scroll-world` | Continuous 3D fly-through, camera-scrub worlds | -| `img3d` | `img2threejs` | Procedural Three.js models from reference images | +| `launch_film` | `business-motion-film` | Commercials, launch films, business explainers, sample reels; render via hyperframes; product-hero Three.js in references | +| `gateway_llm` | `ninerouter` | 9Router gateway (chat, image, video, TTS, STT, embeddings, web) via NINEROUTER_URL; foreign on-demand stub | | `docs` | `smartdoc` | Technical docs, OCR/PDF/DOCX extraction & contracts | | `slides_pptx` | `deck-design` | Consulting PPTX / 16:9 HTML decks; smartdoc keeps PDF/DOCX; markitdown keeps ingest | | `ingest_md` | `markitdown` | Structure-preserving Markdown ingest from Office/PDF | @@ -100,12 +101,12 @@ Never list unused tools or uncalled MCP methods as used. - Unknown / hard bugs, regressions, measured slowdown: `/diagnosing-bugs`. Skip typos, known-cause, and test-first known fixes (`/tdd`). - Authoring SKILL.md / AGENTS.md / skill descriptions / context pointers: `/writing-for-agents` (distinct from `/skill-stocktake` which audits catalog hygiene). Workflow choice is handled directly by the router without a specialist. - Documents (answer, create, transform, extract, review, PDF/DOCX): `/smartdoc`. Consulting PPTX / 16:9 slide decks: `/deck-design`. Long structured document tree/reasoning nav: `/pageindex`. File to Markdown ingest: `/markitdown`. Reusable book/module knowledge: `/smartbook-ingest`. SmartDoc may read an existing SmartBook; that is not a second implementation specialist. Impeccable `document` stays DESIGN.md. -- Prose AI-tell removal and natural tone polishing: `/humanizer`. Manual `/unslop` is an alias to the same specialist body. Do not auto-apply on ordinary code or diffs. Technical documentation structure stays `/technical-writing`. Code linting stays `/install-anti-slop`. Prompt structure stays `/prompt-optimizer`. +- Prose AI-tell removal and natural tone polishing: `/humanizer`. Manual `/unslop` is an alias to the same specialist body. Do not auto-apply on ordinary code or diffs. Technical documentation structure stays `/technical-writing`. Code linting stays `/install-anti-slop`. Prompt structure and AI-tells split between `/humanizer`, `/research` / Context7, `/writing-for-agents`, and `/eval-harness`. - Editorial HTML and inline SVG diagrams (architecture, sequence, ER, flowcharts, Wardley): `/diagram-design`. Mermaid/draw.io are inputs to redraw, not final output. Frontend UI implementation stays `/impeccable`. Code-level seams stay `/codebase-design`. - Agent architecture diagnosis, autonomous loop failures, context leakage, wrapper regressions: `/agent-architecture-audit`. Load only when user names the agent stack job. Defensive security and secrets auditing stay `/full-audit-keamanan`. - Evaluation harness, prompt/agent benchmarks, pass@k metrics, regression suites: `/eval-harness`. Load only when user names benchmark work. Project code unit tests stay `/tdd`. - Cost-aware LLM architectures, complexity model tiering, token budgets, prompt caching: `/cost-aware-llm-pipeline`. Load only when user names cost/token budget work. Application bundle and page latency profiling stay `/full-performance-audit`. -- Prompt critique, structural optimization, negative constraints, format locks: `/prompt-optimizer`. General prose polishing stays `/humanizer`. +- Gateway 9Router models, multi-provider routing, image/video gen, TTS, STT, embeddings, web search: `/ninerouter`. Core MCP remains codebase-memory-mcp, context7, shadcn. - OpenCodeHighEnd skill catalog hygiene, frontmatter validation, boundary integrity: `/skill-stocktake`. Code standards review stays `/matt-code-review`. - REST resource, status, pagination, and versioning design: `/api-design`. Library docs stay Context7. Shared schema ownership stays `/contract-first`. Seam design stays `/codebase-design`. - Consumer/provider OpenAPI, AsyncAPI, or Protobuf contracts: `/contract-first`. Module seams stay `/codebase-design`. @@ -141,7 +142,7 @@ The specialist architecture forms a deterministic graph connected by file artifa - Use the hub only when cwd has `components.json`. Never silent `shadcn init` on this adapter, a backend or Python tree, or a non-UI cwd. - Scroll-led storytelling (scroll is the timeline, scrollytelling, signature interaction): `/scroll-craft`. Ordinary scrollable UI stays `/impeccable`. `/scroll-craft` plus Continuous World: Scroll Craft writes the brief, then `/scroll-world`. - Continuous camera fly-through, diorama, or 3D-world landing: `/scroll-world` even if the request says scroll. -- Procedural Three.js object from image: `/img2threejs` (factory Group, editable primitives, visible vs inferred spec). Not `scroll-world` (camera fly-through), not `hyperframes` (HTML-to-MP4), not `visual-studio` (photoreal stills/media), and not `impeccable` (product UI). +- Commercials, launch films, business explainers, sample reels, pitch videos: `/business-motion-film` (render via `hyperframes`; Three.js product-hero patterns in references, not a standalone skill; 18s brag cards stay `hyperframes/references/brag.md`). Indonesian narrated tours stay `/id-demo-video`. Not `scroll-world` (camera fly-through), not `visual-studio` (photoreal stills/media), and not `impeccable` (product UI). - Deterministic HTML composition rendered to video: `/hyperframes` (headless Chrome + FFmpeg; 18s brag/launch cards via `references/brag.md`). Not `visual-studio`, not `emil-design-eng`. Ordinary scrollable UI stays `/impeccable`. - Demo video aplikasi, walkthrough layar, narasi Indonesia, demo lomba: skill `id-demo-video` (bukan `hyperframes` untuk durasi panjang utuh, bukan `playwright-qa`, bukan `visual-studio`). Kartu judul HTML→MP4 tetap `hyperframes`. - Photoreal stills / ads / identity with no UI surface: `/visual-studio`. @@ -184,7 +185,7 @@ The specialist architecture forms a deterministic graph connected by file artifa - No extra marketplace plugins. Foundation = skills + MCP + thin AGENTS.md + runtime helpers. - User MCP: `codebase-memory-mcp`, `context7`, and `shadcn` on; `serena`, `stitch`, `reticle`, and `ui-skills` absent until a human enables them; `exa` foreign. -- ECC / other harness overlays: `FOREIGN_ON_DEMAND`. Never add, remove, or merge foreign harness control planes or continuous-learning runtimes. Individual warehouse procedures ported in Wave 2 (agent-architecture-audit, cost-aware-llm-pipeline, eval-harness, prompt-optimizer, skill-stocktake) and Wave 3 (api-design, contract-first, automation-audit-ops, code-tour, click-path-audit) are first-party MIT skills. If external ECC is already present in user environment, do not merge and do not shadow. +- ECC / other harness overlays: `FOREIGN_ON_DEMAND`. Never add, remove, or merge foreign harness control planes or continuous-learning runtimes. Individual warehouse procedures ported in Wave 2 (agent-architecture-audit, cost-aware-llm-pipeline, eval-harness, skill-stocktake; prompt-optimizer retired in 0.1.8) and Wave 3 (api-design, contract-first, automation-audit-ops, code-tour, click-path-audit) are first-party MIT skills. If external ECC is already present in user environment, do not merge and do not shadow. - FOREIGN vendor packs (e.g. `mongodb/agent-skills`, `supabase/agent-skills`, `vercel-labs/agent-skills`) stay off the overlay; user may `npx skills add mongodb/agent-skills|supabase/agent-skills` locally; never `frontend-design` for product UI. - Never auto-edit rules or skills from a learning log (no `/learn`, `/evolve`, or session-end skill writers). diff --git a/skills/business-motion-film/NOTICE.md b/skills/business-motion-film/NOTICE.md new file mode 100644 index 0000000..2e23f8d --- /dev/null +++ b/skills/business-motion-film/NOTICE.md @@ -0,0 +1,8 @@ +# Notice: business-motion-film + +- Upstream repository: [echris6/motion-video-kit](https://github.com/echris6/motion-video-kit) +- Upstream commit: `255562b04b1e5ecaa4ba98e5c9aa191d5ba7f6fa` +- License: MIT +- Copyright: Copyright (c) 2026 echris6 +- Local license copy: `vendor/licenses/ECHRIS6-MOTION-VIDEO-KIT-MIT.txt` +- Notes: Adapted into first-party OpenCode skill stub. Pointers reference pinned upstream files rather than vendoring large reference corpuses. Rendering is executed via hyperframes. diff --git a/skills/business-motion-film/SKILL.md b/skills/business-motion-film/SKILL.md new file mode 100644 index 0000000..9a1316d --- /dev/null +++ b/skills/business-motion-film/SKILL.md @@ -0,0 +1,41 @@ +--- +name: business-motion-film +description: Plan, storyboard, and quality-check premium short business commercials, product launch films, sample reels, and explainers with code-built motion (HTML/GSAP/Three.js) and an independent critic Gauntlet. Render through hyperframes. Not for narrated Indonesian app tours (id-demo-video), 2D scrollytelling (scroll-craft), or continuous camera fly-through landings (scroll-world). +compatibility: opencode +license: MIT +--- + +# business-motion-film + +Make short (15–40s) commercial launch films and product hero videos that sell a real business outcome. Claims must be true; visual execution is ambitious. Render executes through `hyperframes`. + +Intent: `launch_film`. Product hero Three.js patterns live here (formerly `img2threejs`). Continuous 3D world scroll stays `scroll-world`. 18s brag cards stay `skills/hyperframes/references/brag.md`. Indonesian narrated app tours stay `id-demo-video`. + +## Boundaries & Handoffs + +| Request | Primary Route | +|---|---| +| Business commercial, launch film, pitch video, sample reel | **`business-motion-film`** | +| Deterministic frame rendering engine / MP4 pipeline | `hyperframes` | +| Indonesian voiceover application walkthrough / demo lomba | `id-demo-video` | +| Continuous camera 3D fly-through, diorama landing | `scroll-world` | +| 2D timeline scrollytelling website | `scroll-craft` | +| Photoreal stills, lifestyle ads, UGC raster packs | `visual-studio` | + +## Pinned Upstream References + +Read only the upstream reference needed for the current step (upstream `echris6/motion-video-kit@255562b`): + +- **Storyboarding & Motion Grammar**: `references/motion-grammar.md`, `references/launch-film-notes.md` +- **3D Components & Product Hero Realism**: `references/three-js-patterns.md`, `references/product-hero-realism.md` +- **Review & Gauntlet**: `references/gauntlet.md`, `references/critic-prompts.md`, `references/quality-bar.md` +- **Audio & Mix Rules**: `references/audio.md` +- **Offers & Business Logic**: `references/business-offers.md` + +## The Gauntlet & Honesty Gates + +1. **Truth on Business Claims**: Never invent testimonials, ratings, warranties, savings, or customer logos. Unverified concept ads must display a clear concept disclaimer. +2. **Builder ≠ Judge**: The builder never grades its own render. Full cuts and components go to an independent critic that inspects only the rendered frames, brief, and rubric. +3. **Item-by-Item Ledger**: Maintain a Gauntlet ledger: critic finding → change made → measured before/after. +4. **Mechanical Proof (FACT)**: Done-gate requires `FACT:` citations: frozen-time measurement (`<=0.2s`), integrated loudness (e.g. `-19` to `-30 LUFS`, true peak `<= -1 dBFS`), and verified artifact file paths. +5. **Tooling Requirement**: Requires local `ffmpeg` and `ffprobe` for render/audio measurement. If absent, report `NOT_CONFIGURED`; never fake a PASS. diff --git a/skills/cost-aware-llm-pipeline/SKILL.md b/skills/cost-aware-llm-pipeline/SKILL.md index 433da4c..68035d1 100644 --- a/skills/cost-aware-llm-pipeline/SKILL.md +++ b/skills/cost-aware-llm-pipeline/SKILL.md @@ -1,6 +1,6 @@ --- name: cost-aware-llm-pipeline -description: Design and optimize cost-efficient LLM application architectures. Covers model tiering, task complexity routing, prompt caching strategies, token budget fences, and retry backoff. Use when reducing API spend, establishing token budgets, or architecting multi-model fallback cascades. Not for client runtime latency/bundle audits (full-performance-audit) or prompt phrasing refinement (prompt-optimizer). +description: Design and optimize cost-efficient LLM application architectures. Covers model tiering, task complexity routing, prompt caching strategies, token budget fences, and retry backoff. Use when reducing API spend, establishing token budgets, or architecting multi-model fallback cascades. Not for client runtime latency/bundle audits (full-performance-audit) or prompt phrasing refinement (humanizer / writing-for-agents). compatibility: opencode license: MIT --- @@ -16,7 +16,7 @@ This skill balances output quality against token expenditure using complexity-ba | Need | Route | |---|---| | Application bundle size, page latency, web vitals, database query profiling | `full-performance-audit` | -| Refining individual prompt wording, instructions, or negative constraints | `prompt-optimizer` | +| Refining individual prompt wording, instructions, or negative constraints | `humanizer` / `writing-for-agents` | | Benchmarking accuracy tradeoffs across cheaper models or prompt versions | `eval-harness` | | Investigating failure loops or context pollution in an agent loop | `agent-architecture-audit` | | **Engineering cost-optimized LLM architectures, routing, and token budgets** | **`cost-aware-llm-pipeline`** | diff --git a/skills/img2threejs/NOTICE.md b/skills/img2threejs/NOTICE.md deleted file mode 100644 index e82176c..0000000 --- a/skills/img2threejs/NOTICE.md +++ /dev/null @@ -1,10 +0,0 @@ -# Notice: img2threejs - -Method inspiration adapted from [img2threejs/img2threejs](https://github.com/img2threejs/img2threejs). - -Upstream licensed under the Apache License, Version 2.0 (the "License"). -You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - -Synthesized and rewritten into OpenCodeHighEnd as an original first-party MIT procedural Three.js TypeScript generator. Zero verbatim upstream text or runtime copied. diff --git a/skills/img2threejs/SKILL.md b/skills/img2threejs/SKILL.md deleted file mode 100644 index 61d9feb..0000000 --- a/skills/img2threejs/SKILL.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -name: img2threejs -description: Use when the user wants a code-only procedural Three.js model reconstructed from a reference object image (factory Group, editable primitives, lighting, animation). Not for scroll-led pages (scroll-craft), camera/diorama worlds (scroll-world), HTML-to-MP4 (hyperframes), photoreal/image generation (visual-studio), or product UI (impeccable / found-this-design). -compatibility: opencode -license: MIT ---- - -# img2threejs - -Procedural 3D reconstruction specialist generating clean, editable TypeScript Three.js `Group` factories from a single reference object image. - -Unlike downloaded GLTF/OBJ mesh blobs or heavy photogrammetry pipelines, img2threejs creates human-readable, parametric code using Three.js primitives (`BoxGeometry`, `CylinderGeometry`, `ExtrudeGeometry`, shaders/materials, lights). - -## Boundaries & Handoffs - -| Need | Primary Route | -|---|---| -| Reconstruct isolated object as procedural Three.js code | **`img2threejs`** | -| Continuous 3D fly-through, diorama, camera world landing | `scroll-world` | -| Scroll-driven timeline storytelling website | `scroll-craft` | -| Deterministic HTML composition rendered to MP4 video | `hyperframes` | -| Photoreal product stills, ads, VFX, or raster asset packs | `visual-studio` | -| Web landing page, dashboard, or application UI | `impeccable` / `found-this-design` | - -## Progressive Pipeline - -1. **Validate Image**: Inspect the reference image. The target must be a discrete object or prop (hardware, furniture, device, vehicle, stylized mascot), not an entire interactive landing page or panoramic scene. -2. **Written Spec (Visible vs. Inferred)**: - - Identify visible geometry, proportions, materials, colors, and lighting. - - Explicitly document **inferred hidden faces** (rear, underside, interior). A single viewpoint cannot reveal occluded sides. - - Propose the hierarchical scene breakdown (`Group` root with named child components). -3. **Factory Pass**: - - Author a standalone TypeScript module exporting a factory function `createModel(options?): THREE.Group`. - - Use procedural primitives and standard materials (`MeshStandardMaterial`, `MeshPhysicalMaterial`). - - Group logically for articulation or animation if requested (pivot points, rotators). - - No downloaded mesh packs, external `.gltf`/`.obj` URLs, or opaque binary blobs. Output must be diffable TypeScript. -4. **Screenshot Compare & Loop Gate**: - - Render the procedural model and visually inspect side-by-side with the reference image. - - Step disposition must be one of: - - `continue`: Visual parity acceptable; finalize and document inputs. - - `refine-spec`: Proportions or structural hierarchy wrong; adjust written specification. - - `refine-code`: Materials, alignments, or primitive parameters off; edit TypeScript. - - `request-input`: Occluded or ambiguous details require user decision. - - `stop`: Reached best procedural approximation, or model complexity exceeds procedural primitives. - -## Hard Rules & Honesty Gates - -1. **Honesty on Occlusion**: Never pretend a single image provides full 360-degree truth. Clearly mark unseen faces as inferred. If the user demands photogrammetric precision that procedural primitives cannot achieve, state "cannot reach requested fidelity" and stop. -2. **Token & Resource Discipline**: Procedural 3D code generation and screenshot verification are token-intensive. Never auto-run on generic website briefs or landing pages. -3. **No Heavy Toolchain**: Output is clean, dependency-light Three.js code. Do not introduce Python mesh reconstruction packages, neural rendering runtimes, or external API dependencies. diff --git a/skills/ninerouter/NOTICE.md b/skills/ninerouter/NOTICE.md new file mode 100644 index 0000000..57a339e --- /dev/null +++ b/skills/ninerouter/NOTICE.md @@ -0,0 +1,6 @@ +# Notice: ninerouter + +- Gateway integration: [decolua/9router](https://github.com/decolua/9router) +- Pinned commit: `f01fb909e37189008080632ddaf404f096345cde` +- License: MIT +- Status: First-party gateway stub (`FOREIGN_ON_DEMAND`). Upstream skills are fetched on-demand; not vendored into overlay core. diff --git a/skills/ninerouter/SKILL.md b/skills/ninerouter/SKILL.md new file mode 100644 index 0000000..a14f12a --- /dev/null +++ b/skills/ninerouter/SKILL.md @@ -0,0 +1,53 @@ +--- +name: ninerouter +description: Route model inference, image generation, TTS, STT, embeddings, or web fetch/search through a local or remote 9Router gateway. Use when user mentions 9router, NINEROUTER_URL, gateway models, or multi-provider fallbacks. Not a core MCP server or credential store; degrades gracefully to NOT_CONFIGURED when gateway is absent. +compatibility: opencode +license: MIT +--- + +# ninerouter + +First-party gateway stub connecting to a user-managed **9Router** instance for multi-provider LLM routing, image/video generation, text-to-speech, transcription, embeddings, and web tools. + +Intent: `gateway_llm`. 9Router is a `FOREIGN_ON_DEMAND` gateway, not an extra core MCP server. Core MCP remains strictly `codebase-memory-mcp`, `context7`, and `shadcn`. + +## Configuration & Environment + +9Router is configured strictly via environment variables: + +- `NINEROUTER_URL`: Gateway base URL (defaults to `http://127.0.0.1:20128`). +- `NINEROUTER_KEY`: Gateway API key (required only if `requireApiKey` is enabled). Passed as `Authorization: Bearer `. Never log or hardcode key values. + +### Fail-Closed Security Rules + +- **Zero-Bind Prohibition**: If `NINEROUTER_URL` contains `0.0.0.0` or binds all interfaces, fail closed immediately. +- **Graceful Absence**: If `NINEROUTER_URL` is unreachable or unconfigured, report `NOT_CONFIGURED`. This is an optional gateway, never an installer or `opencode-he doctor` failure. + +## Health & Discovery + +Verify connectivity: +```bash +curl -s "$NINEROUTER_URL/api/health" +# Expected response: {"ok":true} +``` + +Available model endpoints: +- Chat / LLM: `/v1/models` +- Image generation: `/v1/models/image` +- Text-to-speech: `/tts` +- Speech-to-text: `/stt` +- Embeddings: `/embedding` +- Web search / fetch: `/web` + +## On-Demand Capability Skills + +Do not vendor upstream skills. Fetch raw definitions on-demand from `https://github.com/decolua/9router` (`master` @ `f01fb90`): +- `skills/9router/SKILL.md` (entry / setup) +- `skills/9router-chat/SKILL.md` +- `skills/9router-image/SKILL.md` +- `skills/9router-video/SKILL.md` +- `skills/9router-tts/SKILL.md` +- `skills/9router-stt/SKILL.md` +- `skills/9router-embeddings/SKILL.md` +- `skills/9router-web-search/SKILL.md` +- `skills/9router-web-fetch/SKILL.md` diff --git a/skills/prompt-optimizer/NOTICE.md b/skills/prompt-optimizer/NOTICE.md deleted file mode 100644 index e85d061..0000000 --- a/skills/prompt-optimizer/NOTICE.md +++ /dev/null @@ -1,8 +0,0 @@ -# Notice: prompt-optimizer - -Adapted from [affaan-m/ECC](https://github.com/affaan-m/ECC). - -Copyright (c) 2024-2026 affaan-m and ECC contributors. -Licensed under the MIT License. - -Adapted into OpenCodeHighEnd as an advisory prompt optimization specialist with zero auto-mutation discipline. diff --git a/skills/prompt-optimizer/SKILL.md b/skills/prompt-optimizer/SKILL.md deleted file mode 100644 index ef78843..0000000 --- a/skills/prompt-optimizer/SKILL.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -name: prompt-optimizer -description: Analyze, critique, and optimize system prompts, task instructions, and agent framing. Enhances structural clarity, edge-case handling, negative constraints, and output schema adherence without executing the underlying task. Advisory only; does not mutate installed skills. Use when refining prompt text, reducing ambiguity, or fixing prompt drift. Not for ordinary coding tasks, prose humanizing (humanizer), or writing agent documentation (writing-for-agents). -compatibility: opencode -license: MIT ---- - -# Prompt Optimizer - -Advisory specialist for analyzing, critiquing, and optimizing prompt engineering artifacts. - -This skill reviews draft prompts, user task instructions, and system directives to maximize clarity, predictability, model steering, and constraint adherence. - -## Operating Principles - -- **Advisory Role Only:** Never execute the task described within the prompt; focus exclusively on analyzing and refining the prompt itself. -- **Zero Auto-Mutation:** This skill does NOT automatically overwrite installed skills or configuration files in `~/.config/opencode/`. It produces recommended prompt text for the user to review and adopt. - -## Boundaries & Handoffs - -| Need | Route | -|---|---| -| Removing AI-writing tells and polishing natural prose | `humanizer` / `/unslop` | -| Authoring or modifying project SKILL.md, AGENTS.md, or tool definitions | `writing-for-agents` | -| Measuring prompt accuracy across test datasets and computing pass@k | `eval-harness` | -| Structuring system prompts for prefix caching efficiency | `cost-aware-llm-pipeline` | -| **Analyzing and optimizing prompt clarity, constraints, and schemas** | **`prompt-optimizer`** | - -## Optimization Framework - -Consult [references/rubric.md](references/rubric.md) for quality evaluation criteria: - -1. **Role & Objective Framing:** - - Establish an unambiguous persona and primary mission. - - Clarify the operational context and assumptions. - -2. **Context & Variable Delimiters:** - - Use clear XML-style tags or markdown blocks (``, ``, ``) to fence user inputs and prevent injection or ambiguity. - -3. **Step-by-Step Procedure:** - - Deconstruct complex tasks into numbered, deterministic phases. - - Mandate pre-flight checks before destructive actions. - -4. **Negative Constraints & Guardrails:** - - Replace vague warnings ("be careful") with explicit prohibitions ("Do NOT call tool X before tool Y completes"). - - Define fallback behavior when required information is absent. - -5. **Output Schema & Format Locks:** - - Specify exact output formatting (e.g. JSON schema, table columns, markdown headings). - - Provide minimal, clean few-shot exemplars demonstrating target format. diff --git a/skills/prompt-optimizer/references/rubric.md b/skills/prompt-optimizer/references/rubric.md deleted file mode 100644 index 92a1494..0000000 --- a/skills/prompt-optimizer/references/rubric.md +++ /dev/null @@ -1,27 +0,0 @@ -# Prompt Evaluation Rubric - -Diagnostic criteria for critiquing and enhancing draft prompts. - -## 1. Intent Precision (Weight: 25%) -- Is the desired outcome specified concretely? -- Can the model definitively verify whether it satisfied the user request? -- Are edge cases (empty input, invalid formats, partial data) addressed? - -## 2. Structural Partitioning (Weight: 20%) -- Are instructions cleanly separated from background context and user input? -- Are delimiters (tags, headers, fences) used consistently? -- Is the reading order logical and progressive? - -## 3. Negative Constraint Firmness (Weight: 25%) -- Are prohibitions unambiguous and enforceable? -- Does the prompt anticipate common model failure modes (e.g. sycophancy, premature completion, ungrounded speculation)? -- Are boundaries between permissible and forbidden actions explicit? - -## 4. Output Contract (Weight: 20%) -- Is the exact output syntax described (JSON, Markdown, YAML)? -- Are required keys, types, and value constraints enumerated? -- Is there a clear indicator of where preamble/conversational chatter should be omitted? - -## 5. Token Economy (Weight: 10%) -- Is redundant or conversational fluff pruned? -- Are long narrative explanations converted into concise structural bullets? diff --git a/skills/skill-stocktake/SKILL.md b/skills/skill-stocktake/SKILL.md index e98023c..2bd9693 100644 --- a/skills/skill-stocktake/SKILL.md +++ b/skills/skill-stocktake/SKILL.md @@ -1,6 +1,6 @@ --- name: skill-stocktake -description: Audit and maintain quality, hygiene, and boundary integrity across OpenCodeHighEnd skills. Checks frontmatter schema, trigger keywords, exclusivity fences, path references, and test coverage. Use when reviewing installed or warehouse skills, auditing catalog health, or cleaning up skill bloat. Not for code-level security audits (full-audit-keamanan), code style review (matt-code-review), or prompt text optimization (prompt-optimizer). +description: Audit and maintain quality, hygiene, and boundary integrity across OpenCodeHighEnd skills. Checks frontmatter schema, trigger keywords, exclusivity fences, path references, and test coverage. Use when reviewing installed or warehouse skills, auditing catalog health, or cleaning up skill bloat. Not for code-level security audits (full-audit-keamanan), code style review (matt-code-review), or prose humanizing (humanizer). compatibility: opencode license: MIT --- @@ -18,7 +18,7 @@ This skill inspects installed skills (`~/.config/opencode/skills/`), manual comm | Reviewing application source code quality or standards | `matt-code-review` | | Auditing code security, secrets, permissions, or supply chain | `full-audit-keamanan` | | Authoring or rewriting SKILL.md bodies and descriptions | `writing-for-agents` | -| Optimizing prompt wording and instructional clarity | `prompt-optimizer` | +| Optimizing prompt wording and instructional clarity | `humanizer` / `writing-for-agents` | | Measuring whether a skill actually beats no-skill | `eval-harness` | | **Auditing skill catalog hygiene, boundaries, and schema conformance** | **`skill-stocktake`** | @@ -77,6 +77,6 @@ Report a single table, one row per audited item, plus a short list of follow-ups | Skill | Verdict | Evidence | Handoff | ``` -Handoffs: `COMPRESS` and `UPDATE` go to `writing-for-agents` (structure, description, pointers) or `prompt-optimizer` (instruction phrasing). Security findings go to `full-audit-keamanan`. Application code style goes to `matt-code-review`. Utility measurement goes to `eval-harness`. +Handoffs: `COMPRESS` and `UPDATE` go to `writing-for-agents` (structure, description, pointers) or `humanizer` (instruction phrasing). Security findings go to `full-audit-keamanan`. Application code style goes to `matt-code-review`. Utility measurement goes to `eval-harness`. Never auto-delete a file, never auto-edit another skill's body, and never mutate a catalog from a learning log. diff --git a/skills/skill-stocktake/references/checklist.md b/skills/skill-stocktake/references/checklist.md index ac11450..42b5fa6 100644 --- a/skills/skill-stocktake/references/checklist.md +++ b/skills/skill-stocktake/references/checklist.md @@ -76,6 +76,6 @@ High overlap plus a shared intent is `MERGE → `; name the residue that - `UPDATE`, `MERGE`, and `RETIRE` cite a path listing, a `--help` or version probe, a checksum, an upstream doc, or an `eval-harness` no-skill baseline. - Unproven claims downgrade to `KEEP` with a follow-up note. -- `COMPRESS` / `UPDATE` → `writing-for-agents` or `prompt-optimizer`. Security → `full-audit-keamanan`. Application code style → `matt-code-review`. Utility measurement → `eval-harness`. +- `COMPRESS` / `UPDATE` → `writing-for-agents` or `humanizer`. Security → `full-audit-keamanan`. Application code style → `matt-code-review`. Utility measurement → `eval-harness`. Report verdicts. Do not delete files and do not rewrite another skill's body from this audit. diff --git a/skills/writing-for-agents/references/route-checklist.md b/skills/writing-for-agents/references/route-checklist.md index 5a5ee0b..b685479 100644 --- a/skills/writing-for-agents/references/route-checklist.md +++ b/skills/writing-for-agents/references/route-checklist.md @@ -8,10 +8,10 @@ Preserved from the router checklist reference. - **Plan:** `grill-with-docs` (with frontier rounds), `to-spec`, `to-tickets`, `tdd` · Architecture DAG: OpenCode plan agent - **Write:** Current session. Test-first: `tdd`. Spec/ticket implementation stays in-session with `tdd`. - **Review:** In-session review (default). Two-axis Standards + Spec: `matt-code-review`. Adversarial multi-review: `/interrogate` (manual). -- **Design:** `found-this-design` (direction/bank) → `impeccable` (atoms/composition) → `emil-design-eng` (motion/interactions). Continuous 3D world: `scroll-world`. Scrollytelling: `scroll-craft`. Media/stills: `visual-studio`. -- **Documents:** `smartdoc` (per-job doc intelligence), `markitdown` (file-to-markdown ingest), `smartbook-ingest` (reusable library compilation). -- **Engineering (Model-invoked on match):** `diagnosing-bugs`, `domain-modeling`, `codebase-design`, `writing-for-agents`, `research`, `prototype`, `diagram-design`. -- **Diagnostics & Governance (Model-invoked on match):** `agent-architecture-audit`, `cost-aware-llm-pipeline`, `eval-harness`, `prompt-optimizer`, `skill-stocktake`, `api-design`, `contract-first`, `automation-audit-ops`, `code-tour`, `click-path-audit`. +- **Design:** `found-this-design` (direction/bank) → `impeccable` (atoms/composition) → `emil-design-eng` (motion/interactions). Continuous 3D world: `scroll-world`. Scrollytelling: `scroll-craft`. Media/stills: `visual-studio`. Launch films / commercials: `business-motion-film`. Generative UI: `json-render`. +- **Documents & Media:** `smartdoc` (per-job doc intelligence), `deck-design` (consulting decks), `pageindex` (tree longdoc nav), `markitdown` (file-to-markdown ingest), `smartbook-ingest` (reusable library compilation), `hyperframes` (HTML-to-MP4 video), `id-demo-video` (Indonesian demo tours). +- **Engineering (Model-invoked on match):** `diagnosing-bugs`, `domain-modeling`, `codebase-design`, `writing-for-agents`, `research`, `prototype`, `diagram-design`, `humanizer`. +- **Diagnostics & Governance (Model-invoked on match):** `agent-architecture-audit`, `cost-aware-llm-pipeline`, `eval-harness`, `skill-stocktake`, `api-design`, `contract-first`, `automation-audit-ops`, `code-tour`, `click-path-audit`, `ninerouter`. - **Vendor / Cloud (Model-invoked on match):** `supabase-ops`, `mongodb-ops`, `vercel-ops`. - **Browser / GitHub / Risk:** `playwright-qa` (primary QA), `browser-act` (multi-account/stealth), `chrome-devtools-axi` (CDP diagnostics), `gh-axi`, `full-audit-keamanan` (security), `full-performance-audit` (performance), `adhd` (divergent ideation). - **Engineering (Manual / Slash-only):** `/architect`, `/arena`, `/blast-radius`, `/create-verification-skill`, `/decision-log`, `/demo-video`, `/figure-it-out`, `/improve-codebase-architecture`, `/interrogate`, `/maintain-verification-skill`, `/reflect`, `/technical-writing`, `/unslop`, `/why`, `/wizard`. diff --git a/templates/AGENTS.md b/templates/AGENTS.md index 46e49d6..586e0c9 100644 --- a/templates/AGENTS.md +++ b/templates/AGENTS.md @@ -10,7 +10,7 @@ Availability is not a reason to use a tool. One primary specialist. At most one ## Closed Intent & Default Classify into exactly one intent before acting: -`repo_understand | bug | security | perf | ui_direction | ui_implement | generative_ui | motion | scroll_2d | scroll_3d | img3d | docs | ingest_md | prose | academic | longdoc_nav | browser_qa | architecture | warehouse | ops_data | video_html | demo_id | slides_pptx` +`repo_understand | bug | security | perf | ui_direction | ui_implement | generative_ui | motion | scroll_2d | scroll_3d | launch_film | gateway_llm | docs | ingest_md | prose | academic | longdoc_nav | browser_qa | architecture | warehouse | ops_data | video_html | demo_id | slides_pptx` 1. Repo evidence is enough → do the work. No specialist. 2. User typed a slash command → load that command's specialist. Do not substitute. @@ -37,7 +37,7 @@ Code Mode host is OpenCode 2: session tools are strictly `tools.opencode.session ## Specialists (load one) -UI direction → skill `found-this-design` (must write `.impeccable/found-this-design.json` before implement) then `impeccable`. UI atoms (button, input, card, nav) after world/brief → impeccable after Design V2 shortlist; BANK_MISS ≠ generate (never `found-this-design` for buttons). Motion UI (easing, hover, seam) → `emil-design-eng`. Still/ads/non-UI surface → `visual-studio`. Scroll-led story → `scroll-craft`. Camera/3D world/diorama → `scroll-world`. Object image to procedural Three.js → `img2threejs`. Registry → shadcn MCP. Design Intelligence and Design V2 are internal to Impeccable `new-work`, never a route. Stitch MCP = screen/comp generation only; then found-this-design or impeccable + Design V2 atoms. Never implement production UI from Stitch alone. UI Skills MCP = design-skill lookup only; product UI remains Design Bank + Impeccable + Design V2 atoms + shadcn; BANK_MISS ≠ generate from a random ui-skills document. Schema/JSON generative UI → skill `json-render` (after tokens/direction or internal schema UI; never bypass Design Bank for marketing; never Jev compose). +UI direction → skill `found-this-design` (must write `.impeccable/found-this-design.json` before implement) then `impeccable`. UI atoms (button, input, card, nav) after world/brief → impeccable after Design V2 shortlist; BANK_MISS ≠ generate (never `found-this-design` for buttons). Motion UI (easing, hover, seam) → `emil-design-eng`. Still/ads/non-UI surface → `visual-studio`. Scroll-led story → `scroll-craft`. Camera/3D world/diorama → `scroll-world`. Iklan / launch film / explainer bisnis / sample reel / pitch video → `business-motion-film` (render lewat hyperframes; pola Three.js product-hero di references, bukan skill sendiri; brag 18s tetap hyperframes/brag.md). Registry → shadcn MCP. Design Intelligence and Design V2 are internal to Impeccable `new-work`, never a route. Stitch MCP = screen/comp generation only; then found-this-design or impeccable + Design V2 atoms. Never implement production UI from Stitch alone. UI Skills MCP = design-skill lookup only; product UI remains Design Bank + Impeccable + Design V2 atoms + shadcn; BANK_MISS ≠ generate from a random ui-skills document. Schema/JSON generative UI → skill `json-render` (after tokens/direction or internal schema UI; never bypass Design Bank for marketing; never Jev compose). Browser QA → skill `playwright-qa` (isolated verification session; builder does not self-attest). Explicit/session BrowserAct → `browser-act`. Observed cause → `chrome-devtools-axi` after `opencode-chromium-cdp` (`127.0.0.1:9223`). Never Google Chrome. Project E2E suites (Playwright Test/Cypress) stay authoritative for regressions. @@ -47,7 +47,7 @@ Prose AI-tells / humanize → skill `humanizer`. Slash `/unslop` is the same spe REST resource/status/pagination/versioning → skill `api-design`. Consumer/provider OpenAPI/AsyncAPI/Protobuf → skill `contract-first`. Live cron/CI/hook/MCP inventory keep-merge-cut → skill `automation-audit-ops`. CodeTour .tour + anchor file → skill `code-tour`. Handler vs shared-store sequential-undo → skill `click-path-audit` (not `playwright-qa`). -Agent stack diagnostics / context leak / wrapper regression → skill `agent-architecture-audit`. Benchmark agent / pass@k → skill `eval-harness` (project unit tests stay `tdd`). Token budget / model tier / prompt cache → skill `cost-aware-llm-pipeline` (not `full-performance-audit`). Structural prompt critique → skill `prompt-optimizer` (not `humanizer`). Skill catalog hygiene → skill `skill-stocktake`. +Agent stack diagnostics / context leak / wrapper regression → skill `agent-architecture-audit`. Benchmark agent / pass@k → skill `eval-harness` (project unit tests stay `tdd`). Token budget / model tier / prompt cache → skill `cost-aware-llm-pipeline` (not `full-performance-audit`). Gateway 9router / NINEROUTER_URL / gambar / TTS / STT / embeddings / web search lewat gateway → skill `ninerouter` (bukan Exa core, bukan MCP baru). Skill catalog hygiene → skill `skill-stocktake`. Supabase Auth/RLS/migrations/Edge → skill `supabase-ops` (Context7; not impeccable). Mongo schema/index/aggregation → skill `mongodb-ops`. Vercel/Next hosting/deploy config → skill `vercel-ops` (not visual UI). Library facts remain Context7. These three never replace found-this-design or impeccable. diff --git a/tests/test_evaluation_matrix.py b/tests/test_evaluation_matrix.py index 5171b2b..e527694 100644 --- a/tests/test_evaluation_matrix.py +++ b/tests/test_evaluation_matrix.py @@ -88,18 +88,19 @@ def test_case_12_browser_act_on_user_named_session(self): self.assertIn("Explicit multi-account or persistent browser sessions: `/browser-act`", self.routing) self.assertIn("Use only when the user explicitly requests BrowserAct, specifies a browser-act CLI command, or requires pre-configured persistent/multi-account sessions", self.browser_act) - def test_case_13_image_to_threejs_procedural_model(self): - # Scenario 13: Procedural Three.js object from image -> img2threejs - self.assertIn("Object image to procedural Three.js → `img2threejs`", self.agents) - self.assertIn("Procedural Three.js object from image: `/img2threejs`", self.routing) - img2threejs = (ROOT / "skills" / "img2threejs" / "SKILL.md").read_text(encoding="utf-8") - self.assertIn("Reconstruct isolated object as procedural Three.js code", img2threejs) - - def test_case_14_scroll_factory_world_not_img2threejs(self): - # Scenario 14: Scroll factory world -> scroll-world NOT img2threejs + def test_case_13_business_motion_film_commercial(self): + # Scenario 13: Business commercial / launch film -> business-motion-film + self.assertIn("business-motion-film", self.agents) + self.assertIn("Commercials, launch films, business explainers, sample reels, pitch videos: `/business-motion-film`", self.routing) + skill = (ROOT / "skills" / "business-motion-film" / "SKILL.md").read_text(encoding="utf-8") + self.assertIn("hyperframes", skill.lower()) + self.assertIn("three-js-patterns.md", skill) + + def test_case_14_scroll_factory_world_not_business_motion_film(self): + # Scenario 14: Scroll factory world -> scroll-world NOT business-motion-film self.assertIn("Continuous camera fly-through, diorama, or 3D-world landing: `/scroll-world`", self.routing) - img2threejs = (ROOT / "skills" / "img2threejs" / "SKILL.md").read_text(encoding="utf-8") - self.assertIn("camera/diorama worlds (scroll-world)", img2threejs) + skill = (ROOT / "skills" / "business-motion-film" / "SKILL.md").read_text(encoding="utf-8") + self.assertIn("scroll-world", skill) def test_case_16_convert_pptx_to_markdown(self): self.assertIn("File → Markdown ingest → `markitdown`", self.agents) @@ -120,10 +121,10 @@ def test_case_18_ingest_into_smartbook(self): self.assertIn("Reusable book", markitdown) self.assertIn("smartbook-ingest", markitdown) - def test_case_15_dashboard_ui_impeccable_not_img2threejs(self): - # Scenario 15: Dashboard UI -> impeccable NOT img2threejs - img2threejs = (ROOT / "skills" / "img2threejs" / "SKILL.md").read_text(encoding="utf-8") - self.assertIn("product UI (impeccable / found-this-design)", img2threejs) + def test_case_15_dashboard_ui_impeccable_not_business_motion_film(self): + # Scenario 15: Dashboard UI -> impeccable NOT business-motion-film + skill = (ROOT / "skills" / "business-motion-film" / "SKILL.md").read_text(encoding="utf-8") + self.assertIn("Photoreal stills, lifestyle ads, UGC raster packs", skill) if __name__ == "__main__": diff --git a/tests/test_routing.py b/tests/test_routing.py index d74bb5d..02ed721 100644 --- a/tests/test_routing.py +++ b/tests/test_routing.py @@ -46,7 +46,6 @@ def test_mappings(self): "agent-architecture-audit": "agent-architecture-audit", "eval-harness": "eval-harness", "cost-aware-llm-pipeline": "cost-aware-llm-pipeline", - "prompt-optimizer": "prompt-optimizer", "skill-stocktake": "skill-stocktake", "api-design": "api-design", "contract-first": "contract-first", @@ -56,7 +55,8 @@ def test_mappings(self): "supabase-ops": "supabase-ops", "mongodb-ops": "mongodb-ops", "vercel-ops": "vercel-ops", - "img2threejs": "img2threejs", + "business-motion-film": "business-motion-film", + "ninerouter": "ninerouter", "markitdown": "markitdown", "id-demo-video": "id-demo-video", "json-render": "json-render", @@ -100,17 +100,17 @@ def test_new_specialist_boundaries(self): self.assertIn("agent-architecture-audit", self.agents) self.assertIn("eval-harness", self.agents) self.assertIn("cost-aware-llm-pipeline", self.agents) - self.assertIn("prompt-optimizer", self.agents) + self.assertIn("ninerouter", self.agents) self.assertIn("skill-stocktake", self.agents) self.assertIn("Agent stack diagnostics / context leak / wrapper regression → skill `agent-architecture-audit`", self.agents) self.assertIn("Benchmark agent / pass@k → skill `eval-harness`", self.agents) self.assertIn("Token budget / model tier / prompt cache → skill `cost-aware-llm-pipeline`", self.agents) - self.assertIn("Structural prompt critique → skill `prompt-optimizer`", self.agents) + self.assertIn("Gateway 9router / NINEROUTER_URL / gambar / TTS / STT / embeddings / web search lewat gateway → skill `ninerouter`", self.agents) self.assertIn("Skill catalog hygiene → skill `skill-stocktake`", self.agents) self.assertIn("Agent architecture diagnosis, autonomous loop failures", self.routing) self.assertIn("Evaluation harness, prompt/agent benchmarks", self.routing) self.assertIn("Cost-aware LLM architectures, complexity model tiering", self.routing) - self.assertIn("Prompt critique, structural optimization", self.routing) + self.assertIn("Gateway 9Router models, multi-provider routing", self.routing) self.assertIn("OpenCodeHighEnd skill catalog hygiene", self.routing) # Warehouse Wave 3 specialists @@ -140,11 +140,12 @@ def test_new_specialist_boundaries(self): "agent-architecture-audit", "eval-harness", "cost-aware-llm-pipeline", - "prompt-optimizer", + "ninerouter", "skill-stocktake", "found-this-design", "impeccable", "hyperframes", + "business-motion-film", "scroll-craft", "scroll-world", "diagram-design", @@ -208,14 +209,23 @@ def test_scroll_routes_have_explicit_boundaries(self): self.assertIn("alone are not enough", skill) self.assertIn("Do not implement worldflight here.", skill) - def test_img2threejs_routing_boundary(self): - self.assertIn("Object image to procedural Three.js → `img2threejs`", self.agents) - self.assertIn("Procedural Three.js object from image: `/img2threejs`", self.routing) - self.assertIn("Procedural Three.js object models from reference images route to `img2threejs`", (ROOT / "docs" / "routing.md").read_text(encoding="utf-8")) - skill = (ROOT / "skills" / "img2threejs" / "SKILL.md").read_text(encoding="utf-8") - self.assertIn("Not for scroll-led pages (scroll-craft)", skill) - self.assertIn("camera/diorama worlds (scroll-world)", skill) - self.assertIn("product UI (impeccable / found-this-design)", skill) + def test_business_motion_film_routing_boundary(self): + self.assertIn("business-motion-film", self.agents) + self.assertIn("Commercials, launch films, business explainers, sample reels, pitch videos: `/business-motion-film`", self.routing) + self.assertIn("Commercials, launch films, business explainers, sample reels, and pitch videos route to `business-motion-film`", (ROOT / "docs" / "routing.md").read_text(encoding="utf-8")) + skill = (ROOT / "skills" / "business-motion-film" / "SKILL.md").read_text(encoding="utf-8") + self.assertIn("hyperframes", skill.lower()) + self.assertIn("scroll-world", skill) + self.assertIn("id-demo-video", skill) + + def test_ninerouter_routing_boundary(self): + self.assertIn("ninerouter", self.agents) + self.assertIn("`gateway_llm` | `ninerouter`", self.routing) + docs = (ROOT / "docs" / "routing.md").read_text(encoding="utf-8") + self.assertIn("ninerouter", docs) + skill = (ROOT / "skills" / "ninerouter" / "SKILL.md").read_text(encoding="utf-8") + self.assertIn("NINEROUTER_URL", skill) + self.assertIn("NOT_CONFIGURED", skill) def test_markitdown_routing_boundary(self): self.assertIn("File → Markdown ingest → `markitdown`", self.agents) diff --git a/tests/test_skills.py b/tests/test_skills.py index ead9020..0d174a1 100644 --- a/tests/test_skills.py +++ b/tests/test_skills.py @@ -60,7 +60,7 @@ def test_counts(self): self.assertEqual(len(model), 50) self.assertEqual(len(manual), 15) self.assertEqual(set(allow), set(skills)) - for name in ("supabase-ops", "mongodb-ops", "vercel-ops", "img2threejs", "markitdown", "id-demo-video", "json-render", "deck-design", "pageindex"): + for name in ("supabase-ops", "mongodb-ops", "vercel-ops", "business-motion-film", "ninerouter", "markitdown", "id-demo-video", "json-render", "deck-design", "pageindex"): self.assertIn(name, allow) self.assertIn(name, model) self.assertIn("demo-video", manual) diff --git a/vendor/license-audit.json b/vendor/license-audit.json index 475bc94..ac6d9de 100644 --- a/vendor/license-audit.json +++ b/vendor/license-audit.json @@ -1,7 +1,7 @@ { "schemaVersion": 1, "product": "OpenCodeHighEnd", - "productVersion": "0.1.7", + "productVersion": "0.1.8", "note": "Evidence-based. A missing frontmatter license is not a grant. Adapted \u2260 first-party.", "skills": { "demo-video": { @@ -259,9 +259,9 @@ "evidence": "SKILL.md frontmatter + affaan-m/ECC MIT; NOTICE.md", "redistribution": "mit" }, - "prompt-optimizer": { + "ninerouter": { "license": "MIT", - "evidence": "SKILL.md frontmatter + affaan-m/ECC MIT; NOTICE.md", + "evidence": "SKILL.md frontmatter + skills/ninerouter/NOTICE.md (first-party MIT stub; decolua/9router)", "redistribution": "mit" }, "skill-stocktake": { @@ -309,9 +309,9 @@ "evidence": "SKILL.md frontmatter (first-party MIT adapter)", "redistribution": "mit" }, - "img2threejs": { + "business-motion-film": { "license": "MIT", - "evidence": "SKILL.md frontmatter (first-party MIT rewrite; NOTICE.md)", + "evidence": "SKILL.md frontmatter + echris6/motion-video-kit MIT; NOTICE.md; vendor/licenses/ECHRIS6-MOTION-VIDEO-KIT-MIT.txt", "redistribution": "mit" }, "json-render": { diff --git a/vendor/licenses/ECHRIS6-MOTION-VIDEO-KIT-MIT.txt b/vendor/licenses/ECHRIS6-MOTION-VIDEO-KIT-MIT.txt new file mode 100644 index 0000000..bec12dd --- /dev/null +++ b/vendor/licenses/ECHRIS6-MOTION-VIDEO-KIT-MIT.txt @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 echris6 + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/vendor/provenance.json b/vendor/provenance.json index a2c902e..17b4072 100644 --- a/vendor/provenance.json +++ b/vendor/provenance.json @@ -1,7 +1,7 @@ { "schemaVersion": 1, "product": "OpenCodeHighEnd", - "productVersion": "0.1.7", + "productVersion": "0.1.8", "firstPartyLicense": "MIT", "components": [ { @@ -575,14 +575,14 @@ "notes": "Adapted from affaan-m/ECC. Eval-driven development (EDD), benchmark dataset construction, and pass@k metric tracking." }, { - "component": "prompt-optimizer", - "path": "skills/prompt-optimizer", - "upstream": "https://github.com/affaan-m/ECC", + "component": "ninerouter", + "path": "skills/ninerouter", + "upstream": "https://github.com/decolua/9router@f01fb909e37189008080632ddaf404f096345cde", "license": "MIT", - "copyright": "Copyright (c) 2024-2026 affaan-m and ECC contributors", + "copyright": "Copyright (c) 2026 decolua", "modified": true, "redistribution": "mit", - "notes": "Adapted from affaan-m/ECC. Advisory prompt engineering review, structural framing, and negative constraint enforcement with zero auto-mutation." + "notes": "First-party gateway stub. Connects to user-managed 9Router; capability skills fetched on demand, not vendored into overlay." }, { "component": "skill-stocktake", @@ -670,6 +670,16 @@ "modified": true, "redistribution": "mit", "notes": "First-party wrapper. Not a core MCP; Cloud/SDK not vendored." + }, + { + "component": "business-motion-film", + "path": "skills/business-motion-film", + "upstream": "https://github.com/echris6/motion-video-kit@255562b04b1e5ecaa4ba98e5c9aa191d5ba7f6fa", + "license": "MIT", + "copyright": "Copyright (c) 2026 echris6", + "modified": true, + "redistribution": "mit", + "notes": "Adapted from echris6/motion-video-kit. Launch-style business commercials, independent critic loop, and product hero 3D realism; render executed via hyperframes." } ] } diff --git a/vendor/skill-allowlist.txt b/vendor/skill-allowlist.txt index 8097280..8c012b2 100644 --- a/vendor/skill-allowlist.txt +++ b/vendor/skill-allowlist.txt @@ -7,6 +7,7 @@ arena automation-audit-ops blast-radius browser-act +business-motion-film chrome-devtools-axi click-path-audit code-tour @@ -31,7 +32,6 @@ grill-with-docs humanizer hyperframes id-demo-video -img2threejs impeccable improve-codebase-architecture install-anti-slop @@ -41,9 +41,9 @@ maintain-verification-skill markitdown matt-code-review mongodb-ops +ninerouter pageindex playwright-qa -prompt-optimizer prototype reflect research diff --git a/vendor/skill-policy.json b/vendor/skill-policy.json index bdd62cb..b8a96ec 100644 --- a/vendor/skill-policy.json +++ b/vendor/skill-policy.json @@ -29,6 +29,9 @@ "browser-act": { "invocation": "model" }, + "business-motion-film": { + "invocation": "model" + }, "chrome-devtools-axi": { "invocation": "model" }, @@ -101,9 +104,6 @@ "id-demo-video": { "invocation": "model" }, - "img2threejs": { - "invocation": "model" - }, "impeccable": { "invocation": "model" }, @@ -131,13 +131,13 @@ "mongodb-ops": { "invocation": "model" }, - "pageindex": { + "ninerouter": { "invocation": "model" }, - "playwright-qa": { + "pageindex": { "invocation": "model" }, - "prompt-optimizer": { + "playwright-qa": { "invocation": "model" }, "prototype": { diff --git a/vendor/sources.json b/vendor/sources.json index 9ec6488..83581fc 100644 --- a/vendor/sources.json +++ b/vendor/sources.json @@ -1,7 +1,7 @@ { "schemaVersion": 1, "product": "OpenCodeHighEnd", - "productVersion": "0.1.7", + "productVersion": "0.1.8", "sources": { "codebase-memory": { "repository": "https://github.com/DeusData/codebase-memory-mcp", @@ -222,6 +222,22 @@ "license": "MIT", "copyright": "Copyright (c) 2026 PageIndex AI / VectifyAI", "note": "First-party skill wrapper. SDK/Cloud/MCP not vendored and not core MCP." + }, + "business-motion-film": { + "repository": "https://github.com/echris6/motion-video-kit", + "commit": "255562b04b1e5ecaa4ba98e5c9aa191d5ba7f6fa", + "license": "MIT", + "copyright": "Copyright (c) 2026 echris6", + "licenseFile": "vendor/licenses/ECHRIS6-MOTION-VIDEO-KIT-MIT.txt", + "note": "First-party skill wrapper. Pointers reference pinned upstream files; large reference packs not vendored. Rendered via hyperframes." + }, + "9router": { + "repository": "https://github.com/decolua/9router", + "commit": "f01fb909e37189008080632ddaf404f096345cde", + "license": "MIT", + "copyright": "Copyright (c) 2026 decolua", + "status": "foreign-on-demand", + "note": "Multi-provider LLM gateway and capability skills. First-party stub in skills/ninerouter; capability skills fetched on-demand; not an extra core MCP." } } }