Files
penguin-harness/packages/landing
Yaowei Zheng 7617374d58 feat(blog): a Perspectives category and three posts on harness design and agent infrastructure (#45)
Adds three bilingual posts, each grounded in primary sources rather than
secondary summaries, plus a new blog category to hold them.

Simple Harness Is All You Need — opens on the counter-intuitive result in
the Databricks coding-agent benchmark: on their cost-versus-pass-rate Pareto
chart, the highest score on the board belongs to Opus 4.8 on the minimal Pi
harness, ahead of the same model on Claude Code at maximum effort for
roughly half the cost per task. Keeps Databricks' own caution and notes that
Pi at max effort lands well below Claude Code at comparable spend. Maps the
result onto PenguinHarness's measured design: six built-in tools with no
file tools, a 72-line system prompt, a 16,000-character output cap, and
compaction into a fresh context.

The Easiest Way to Build AI Agents in 2026 — argues the cost of building an
agent has moved out of the agent and into the stack around it: LangChain to
build, LangGraph to orchestrate, LangSmith or Langfuse to observe and
evaluate, LangGraph Platform to deploy. Five products, two or three vendors,
and a person who becomes the optimization loop.

AI Infrastructure: Past, Present, and Future — the stack used to build AI
(PyTorch, vLLM, Ollama, LlamaFactory) assumes a human operator who carries
state in their head and treats errors as a starting point. It needs no
reinventing for agents; what was missing is the operating knowledge, which
the ollama, vllm and llamafactory skills encode.

Both benchmark comparisons disclose the results we lose as well as the ones
we win, and the framework post names two cases where you should pick
something else.

Also adds the Perspectives / 观点 category with a teal badge, filter chip and
both dictionaries, keeping Tech practice for the hands-on AMD walkthroughs.
2026-07-23 05:04:54 +08:00
..

@prismshadow/penguin-landing

The PenguinHarness product landing page (React + Vite + Tailwind CSS 4): bilingual (zh/en), light/dark themes, the feature matrix and CONTRACT.md showcase, benchmark charts, Playwright-captured product screenshots, and a local-Markdown blog (product news / release notes).

It deploys to GitHub Pages together with the docs site as one artifact: landing at the site root, docs under /docs/ (assembled by scripts/build-site.mjs at the repo root; the nav, footer and CTA link into /docs/).

Development

pnpm --filter @prismshadow/penguin-landing dev        # http://127.0.0.1:7366
pnpm --filter @prismshadow/penguin-landing build      # dist/ (with 404.html SPA fallback + .nojekyll)
pnpm --filter @prismshadow/penguin-landing typecheck
pnpm --filter @prismshadow/penguin-landing test

BASE_PATH=/ pnpm build:site                           # repo root: assemble landing + docs
pnpm --filter @prismshadow/penguin-landing preview    # serve the assembled tree

BASE_PATH controls the asset base (GitHub Pages project pages need /<repo>/; local default /). The Docs links resolve only in the assembled build — in plain dev they point at a path this dev server doesn't serve.

Deployment

.github/workflows/pages.yml builds landing + docs and deploys on pushes to main that touch either package (or on manual dispatch). First-time setup: repository Settings → Pages → Source = "GitHub Actions".

Blog

Posts live in content/blog/<slug>.<lang>.md (lang is zh / en; the two language versions of a slug fall back to each other). Frontmatter:

---
title: Post title
date: 2026-07-17
category: news | changelog
excerpt: One-line summary for the list page
---

Screenshots

pnpm --filter @prismshadow/penguin-landing shots regenerates src/assets/shots/: the script ships a scripted mock LLM (speaking both Anthropic SSE and OpenAI chat-completions streams), boots the Web service on a temp data root, drives a real "build an Agent app" conversation (tools actually execute in the Workspace), then captures the chat, trace and evaluation pages per UI language (zh/en, separate users) and theme (light/dark) — 12 shots (<page>-<lang>-<theme>.webp, re-encoded to WebP in Chromium to keep sizes down). The landing page always shows the shot matching the visitor's language and theme. Prereqs: build skills/core/server/web first, and have Playwright Chromium installed.

Part of PenguinHarness · Apache-2.0