Home / All Skills / Docs & Knowledge / experiment-readout
Docs & Knowledge · nexu-io/html-anything

experiment-readout

Hypothesis + Metrics + Results + Interpretation + Decision: Turns A/B or product experiments into actionable recommendations.

L1 Basic · Source registration onlyV1 Commit-PinnedDual-pass Audit
Author nexu-ioGitHub nexu-io/html-anything ↗Stars 8827License Apache-2.0(仓库根 LICENSE;GitHub API spdx_id=Apache-2.0)Commit 553ed98c28
Control levels describe skill capabilities and suggested control measures; they do not represent quality or safety certifications, nor do they dictate usability. Usage decisions rest entirely with users and administrators. Different agent hosts apply varying constraints; do not assume hosts provide automatic protection. Third-party skill copyrights belong to their original authors. Use at your own risk.

1How It Works & Mechanism

This skill is not an executable program, but a prompt injected into the local coding-agent CLI: the host takes the body of SKILL.md, prepends a shared site-wide design instruction, appends user content, concatenates them into a single prompt for the logged-in agent, and retrieves the agent's stdout as HTML.

next/src/lib/templates/shared.ts
【输入格式】: ${opts.format} 【用户内容】: ${opts.content}
Prompt assembly = shared instructions → skill body → input format → user content; the web endpoint /api/convert follows the same function: prompt = assemblePrompt({ body: skill.body, content, format });

The shared instruction layer (which does not belong to any single skill but sits above every template) anchors the output as a 'self-contained single-file HTML' and explicitly forbids the agent from using filesystem tools such as Write/Edit/Bash, streaming the HTML directly as the conversation body.

next/src/lib/templates/shared.ts
- **禁止使用 Write / Edit / MultiEdit / Bash / Create / 任何文件系统工具**。不要把 HTML 写到任何 \`.html\` 文件里。前端直接捕获你的 stdout 文本, 文件落盘由前端负责。
This is the origin of this batch of skills' capability boundaries: the output is purely text, with disk writing and rendering handled by the host frontend; this prohibition is a soft prompt constraint, not hard sandbox isolation.

Beyond SKILL.md, there is a 'content-driven quantity' override rule: any page, frame, or card count stated in the template is strictly treated as a reference lower bound, with the actual quantity determined by user content—preventing the agent from compressing user content to match template numbers.

next/src/lib/templates/shared.ts
- 模板只定义"可用版面 / 风格 / 配色 / 字体 / 组件库", **不定义** slide / 帧 / 卡片 / section 的数量。
This is especially critical for frame-* single-frame templates: it defines layout descriptions in the template as a 'reusable layout pool' rather than an output cap.

The loading convention is 'one skill = one directory': SKILL.md (YAML frontmatter for the selector + body as template prompt), with optional example.md (sample input) and example.html (ready-to-open preview sample); adding a new template only requires adding a directory without modifying TS code.

next/src/lib/templates/loader.ts
* SKILL.md — frontmatter (id, scenario, tags, …) + prompt body * example.md — (optional) sample input content * example.html — (optional) pre-rendered preview, shown inline in the picker
The loader's loadSkillFromDir only reads these three types of files and has no other asset-loading channels—the second pass checks the asset reachability of this skill accordingly.

The selection pipeline (CLI side) is a three-stage funnel: strong keyword signals (2 points per matched word, threshold 3) → fallback to tags/scenario scoring → if still uncertain, pass the first 800 characters of user content to a local agent for one-sentence classification.

cli/src/skills-matcher.ts
const CONFIDENCE_THRESHOLD = 3;
Original prompt for AI fallback: const prompt = `请用一句话(不超过15个字)描述以下内容最像什么类型的文档,只需回答类型名称:`

The preview pipeline is independent of generation: /api/templates/<id>/preview returns example.html verbatim as text/html to the iframe; the frontend iframe uses sandbox="allow-scripts allow-same-origin".

next/src/components/preview-pane.tsx
sandbox="allow-scripts allow-same-origin"
Route comment: * Returns the skill's `example.html` verbatim so it can be loaded into an (host-side tradeoff: under allow-scripts + allow-same-origin, preview page scripts can remove the sandbox themselves).

The core of the template is a 'fixed 9-section report skeleton + four-way verdict': forcing any experimental material through the pipeline of Header → Hypothesis → Setup → Result snapshot → Metric table → Interpretation → Decision → Follow-up → Instrumentation notes, ultimately requiring one of Ship / iterate / extend / stop.

next/src/lib/templates/skills/experiment-readout/SKILL.md
【必须输出的结构】 1. Header: 实验名称、owner、日期、实验状态、decision。 2. Hypothesis: 原始假设, 必须改写成可验证句式。 3. Setup: audience、variant、duration、sample size、primary metric、guardrail metrics。 4. Result snapshot: primary metric lift、absolute delta、sample、confidence / caveat。 5. Metric table: Control vs Variant, primary + secondary + guardrail。 6. Interpretation: 解释结果为什么发生, 区分 signal、noise、unknown。 7. Decision: Ship / iterate / extend / stop 四选一, 并给理由。 8. Follow-up experiments: 2-4 个下一步实验, 每个包含 hypothesis、expected impact、effort。 9. Instrumentation notes: 数据缺口、埋点问题、样本偏差。
The 9 sections are a hard structure rather than a suggestion: Decision and Follow-up ensure the output lands on concrete actions rather than stopping at data descriptions.

It explicitly rejects the goal of merely 'displaying data': the intent section anchors its positioning on judgment—what this experiment demonstrates, and whether the next step is to launch, stop, keep running, or redesign.

next/src/lib/templates/skills/experiment-readout/SKILL.md
【意图】这不是普通数据报告、不是 dashboard。目标是回答: "这个实验说明了什么, 我们下一步应该上线、停止、继续跑, 还是重新设计?"
The intent section pins down the goal with a rhetorical question, serving as a self-check question for the model.

An anti-fabrication clause is written into the template body: only data provided by the user may be used, strictly forbidding fabricated p-values, confidence intervals, or sample sizes.

next/src/lib/templates/skills/experiment-readout/SKILL.md
- 只使用用户提供的数据。不要捏造 p-value、confidence、样本量。
'Use only user-provided data' and the prohibition against fabricating the trio of statistics are two sides of the same discipline.

Above-the-fold information hierarchy is strictly specified: there must be a 'large decision badge and primary metric delta', allowing readers to grasp the verdict and primary metric change within 3 seconds.

next/src/lib/templates/skills/experiment-readout/SKILL.md
- 首屏必须有大号 decision badge 和 primary metric delta。
This is an above-the-fold hierarchy requirement, not merely a visual preference.

Three mutually exclusive style assets are routed: product-readout (default) / lab-notebook (research, preserving uncertainty) / growth-console (growth, funnels, real-time), with explicit usage conditions and a rule to 'never mix the three'.

next/src/lib/templates/skills/experiment-readout/SKILL.md
根据实验语境选择一种, 不要三种混用:
Mutual exclusivity + trigger conditions prevent the model from mixing three themes on a single page.

2Core Capabilities

01Fixed 9-section experiment review structure (including Follow-up experiments and Instrumentation notes)
02Mandatory four-way verdict (Ship / iterate / extend / stop) with rationale
03Strict anti-fabrication clause prohibiting made-up statistics
04Mandatory caveat phrasing when sample size or statistical significance is lacking
05Control vs Variant metric table (primary + secondary + guardrail)
06Three mutually exclusive style themes (product-readout / lab-notebook / growth-console)
07Chart implementation constraints: CSS/SVG/Chart.js permitted; Chart.js canvas must have fixed height
08Broad input coverage for A/B, growth, pricing, onboarding, canary/rollout, and email experiments

3External Dependencies

KindDependency / Endpoint
networkTailwind Play CDN(共享指令强制;示例页与三份资产页均实际引用)
networkGoogle Fonts(Inter / Noto Sans SC,示例页实际引用)
packageChart.js(SKILL.md 允许的可选图表库;示例页未使用)

4Recommended Governance & Evidence

Suggested Controls for Safe Operation
For Agent Runtime
Can be auto-loaded
For Administrators
Register source and version
Evidence & Triggers (File Paths & Excerpts)
  • SKILL.md: Pure prompt instructions and rule text; no script execution or external impact.
Audit Notes: Evaluation target is the skill's own directory (criteria: what actually happens when executed according to SKILL.md): SKILL.md consists purely of instructional text, and the accompanying example.md/example.html are sample inputs and preview samples. The directory contains no scripts, no runtime network calls, no credential reading, and no agent-side file writes; SKILL.md also does not reference any external generation/service backend (contrasting with orange precedents ai-image-generation / seedance, which send assets to external generation backends and consume account credits; this template produces no outbound data). Non-tier-affecting explanatory notes: example.html in the directory externally links cdn.tailwindcss.com and fonts.googleapis.com (batch 4 criteria: external links in example.html are output samples and not rated); the shared instruction layer similarly requires outputs to load Tailwind and Google Fonts via CDN in the head (`<head>` importing Tailwind v3 Play and Google Fonts), which is host wrapper behavior. Host context (not counted towards rating, see verdict.risks): preview iframe sandbox="allow-scripts allow-same-origin"; host launches agent in full-privilege mode ("bypassPermissions", / "--yolo"). Additional note: The three style assets in assets/ referenced by SKILL.md have no loading mechanism (see verification) and do not affect the risk rating.

5Second-Pass Verification

  • [ok] 运行时机制(loader→assemblePrompt→agent CLI→捕获 stdout) — 重读 next/src/lib/templates/shared.ts / next/src/app/api/convert/route.ts:拼装顺序与 /api/convert 调用点逐字复核,与第一遍一致。
  • [ok] 『固定 9 段结构』宣称 — 重读 SKILL.md 结构段,9 段编号与名称与 JSON 引用一致,无夸大。
  • [ok] 外部资源条目(tailwind / Google Fonts) — 在 assets/product-readout.html 命中 <script src="https://cdn.tailwindcss.com">、<link href="https://fonts.googleapis.com/css2?family=Inter…">,调用点真实存在。
  • [discrepancy] 『assets/ 三风格可选』可执行性 — SKILL.md 指示参考 assets/,但全仓 grep 显示 product-readout.html / lab-notebook.html / growth-console.html 仅被该 SKILL.md 自身引用;loader.ts 的 loadSkillFromDir 只读 SKILL.md / example.md / example.html。结论:生成时模型看不到这三份资产,指令为死引用。
  • [ok] 安全面(脚本/网络/凭证/写盘) — 对 skill 目录做 token 扫描(script/fetch/XMLHttpRequest/API key/process.env/child_process/eval/curl/wget/.env/localStorage/download=)零命中;示例页唯一 <script> 是 Tailwind CDN 标签,无自写 JS。
  • [ok] meta 元数据(stars / last_push / license) — GitHub API 实查 owner_repo=nexu-io/html-anything:stargazers_count=8827、pushed_at=2026-09-15T03:36:24Z、license.spdx_id=Apache-2.0,与仓库根 LICENSE(Apache License 2.0)一致。
  • [unlocatable] 安装量 — 无公开安装量数据源(README/GitHub API 均无),meta.installs 置 null,不硬写。

6Verdict & Scenarios

  • Forcefully transforms experiment reports from 'data displays' into 'decision documents' (Ship/iterate/extend/stop + 2-4 follow-up experiments), producing deliverables ready for review meetings.
  • The anti-fabrication clause uniquely codifies statistical honesty: forbids fabricating p-values/confidence/sample sizes, requiring directional/inconclusive/needs more data when significance is missing.
  • Style routing is governed by clear criteria rather than arbitrary choices: default product-readout, research-oriented lab-notebook, growth-oriented growth-console, with mixing strictly forbidden.
  • Broad input surface: handles A/B, growth, pricing, onboarding, canary, and email experiments, explicitly accepting markdown, CSV, and pasted tables.
  • Best for: Suitable for product and growth teams needing to rapidly convert existing A/B or canary experiment materials (markdown/CSV/tables) into decision-ready debrief reports; also ideal for teams requiring procedural enforcement that 'conclusions must lead to a concrete action.' When a unified company report template already exists, this can serve as a baseline for adaptation.
    Not for: Not suitable for scenarios only requiring data visualization (it is deliberately not a dashboard); not suitable for cases lacking real data where the model is expected to invent values (the template strictly forbids fabricating statistics); not suitable for analytical workflows needing interactive data exploration (the output is a static single-page document); style assets are currently unreachable, so users hoping to directly reuse the three asset themes from assets/ will be disappointed.
    Install Agent-Ready
    ① Verified Mirror 2026-09-15
    Option A · Direct DownloadDownload experiment-readout.tar.gz
    sha256: f9361c33db600ac8…
    Option B · Copy Guide for Agent
    install.json
    Agents automatically download and verify mirrors from this JSON guide.
    ② Upstream GitHub
    GitHub Repo ↗
    Pinned to commit 553ed98c28.