examples — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited examples (MCP Server) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Generate, A/B-test, deploy, and audit static landing pages — as Claude Code skills.
📖 English · Русский
Landforge is a small system of Claude Code skills that take a landing page from a brief to a deployed, measurable page — with SEO, analytics, A/B testing, and a change-audit trail built in. Landings stay static HTML (content in the markup, zero JS on the critical path), so they're fast and fully indexable. No bundler, no backend, no heavy tooling.
see real content, not an empty <div id="root">.
(SEO tags, JSON-LD, analytics, A/B scaffold) and self-checks it.
Cursor, Claude Desktop or your own agent, not only Claude Code.
| Skill | What it does |
|---|---|
| `/new-landing` | a landing from a brief — contract + skeleton + check_landing.py validator |
| `/landing-experiment` | an A/B test on one URL (inline split), variant tracking, experiment card |
| `/landing-journal` | audit journal of every change (experiments/journal.jsonl + git) |
| `/landing-ads` | ad materials (UTM, copy, keywords, editor exports) — artifacts, no spend |
| `/init-landing-system` | deploy this whole system into another existing project |
The generator's input is a brief — a single format plus an interviewer prompt you can paste into any LLM (see .claude/skills/new-landing/reference/).
Beyond Claude Code, the deterministic toolbox (validators, audit journal, UTM) is exposed as an MCP server, so Cursor, Claude Desktop or your own agent can call it too. Tools wrap the same scripts — one source of logic — and the contract, brief schema and skeleton are served as resources. Generative workflows (brief interview, landing generation, A/B checklist) are exposed as prompts; the generation itself stays with the host's model.
pip install -e mcp # then point your MCP client at the `landforge-mcp` stdio serverSee mcp/README.md and ADR-0002. The static-HTML invariant is untouched — the server is an optional dev tool, never part of a landing's runtime.
A. Use the system in this repo
# in Claude Code:
/new-landing # generate a landing from a briefB. Install the system into your own existing project
bash .claude/skills/init-landing-system/scripts/sync_templates.sh
bash .claude/skills/init-landing-system/scripts/install_user.sh
# then, in your project (Claude Code):
/init-landing-system # asks for brand/domains/slug, deploys the system (merge-aware)brief ──▶ /new-landing ──▶ static HTML (SEO + analytics + A/B scaffold)
│ │ self-check: check_landing.py
▼ ▼
git branch ─────▶ preview URL ─────▶ review ─────▶ prod
every step → audit journalvia the bundled MCP server (mcp/, needs Python ≥ 3.10) instead of / alongside Claude Code.
nginx containers (prod/staging),deployed via GitHub Actions over SSH. CI and nginx configs are included as templates.
.github/workflows/deploy.yml routes by branch:
| Branch | Target | Index |
|---|---|---|
main | production | indexable |
dev | staging | noindex |
| any other | preview at …/{branch} | noindex |
Infra values (domains, containers, dirs) are {{placeholders}} resolved by init-landing-system or by hand (.claude/skills/init-landing-system/reference/placeholders.md). Only production is indexed — staging and previews are closed with X-Robots-Tag: noindex at the nginx layer.
.claude/skills/ the skills (new-landing, landing-experiment, landing-journal, landing-ads, init-landing-system)
mcp/ optional MCP server — exposes the toolbox to any MCP host (ADR-0002)
.github/workflows/ CI: deploy.yml (branch-routed), cleanup-preview.yml
deploy/ nginx.{prod,staging}.conf (IaC templates)
docs/adr/ architecture decision records
experiments/ A/B experiments + audit journal
CLAUDE.md notes for Claude CodePRs welcome — see CONTRIBUTING.md and the Code of Conduct. The one rule that must never break: a landing stays static HTML with content in the markup and zero JS on the critical path (see ADR-0001).
MIT © Александр Перебоев
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.