page-template-library — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited page-template-library (Agent Skill) 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.
Version: 1.0.0 Updated: 2026-05-24 Category: workflow Status: stable Requires: Respira for WordPress plugin 7.1+ + MCP server
Most WordPress sites have a few "canonical" page patterns the team builds over and over: the case study layout, the service page layout, the landing page hero + 3 sections + CTA layout, the team-member single layout. This skill captures those patterns as re-usable playbooks using the new v7.1 MCP tools (respira_create_playbook, respira_list_playbooks, respira_update_playbook).
Once captured, future page-generation skills (or the user directly) can spawn a new page from a playbook in seconds, on-brand, with the right structure — no more "build it from scratch every time."
A library of named playbooks on the site, each describing:
Call respira_get_active_site and respira_get_builder_info. Playbooks are builder-specific. Note the active builder — the playbook will be locked to it.
Two modes:
Mode A — Capture from an existing page. User says "save this page as a template." Get the page ID from the conversation context or ask the user which page (respira_list_pages for selection).
Mode B — Capture from a pattern across multiple pages. User says "all our case studies follow the same pattern — capture it." Call respira_list_custom_posts(post_type=case_study) (or respira_list_pages filtered by parent or template). Sample 3–5 of them and identify the common structure.
For Mode A (single page):
respira_extract_builder_content(page_id) — get the builder-native structureFor Mode B (pattern across pages):
Slots are the fields the user fills in when spawning a new page from the playbook. Typical slots:
Each slot has a type (text / image / number / URL / repeater) and an optional default value.
If respira_get_option('respira_design_system') returns a saved design system, reference its tokens in the playbook. E.g. instead of hard-coding #2563EB, reference {design_system.colors.primary}. The playbook becomes drift-resistant — if the design system updates, every page spawned from the playbook reflects the new tokens.
Output the proposed playbook shape:
## Proposed playbook: `case_study_v1`
**Targets:** Bricks 1.12 (locked)
**Sections:** 5 — Hero / Stats / Body / Quote / CTA
**Design system bound:** yes (uses primary, secondary, accent + heading typography)
### Slots (the user fills these when spawning a new page)
1. **client_name** (text, required) — e.g. "Acme Studio"
2. **hero_image** (image, required) — full-width hero
3. **subtitle** (text, optional) — short kicker above the H1
4. **headline** (text, required) — the H1
5. **stats** (repeater × 3, required) — number + label per stat
6. **body** (long_text, required) — the main case study narrative
7. **client_quote** (text, optional) — pulled quote from the client
8. **client_quote_author** (text, optional)
9. **cta_text** (text, default: "Start a project") — final CTA button
10. **cta_url** (url, default: "/contact/")
### Structure (the section spine)
1. **Hero** — full-width, centered. Uses `subtitle` + `headline` + `hero_image`.
2. **Stats** — 3-up grid. Uses `stats` repeater. Colors from design system.
3. **Body** — single-column, max-width 720px. Uses `body`.
4. **Quote** — large pull quote. Uses `client_quote` + `client_quote_author`. Optional — skipped if `client_quote` empty.
5. **CTA** — centered, on accent background. Uses `cta_text` + `cta_url`.Ask: "Save this playbook? Anything to change?"
After confirmation, call respira_create_playbook with the structure + slots + design-system bindings.
Then: "Playbook `case_study_v1` saved. To spawn a new case study from it, say: `build a new case study from playbook` or call `respira_get_playbook('case_study_v1')` and then `respira_build_page` with the slot values."
Offer to spawn one new page from the playbook immediately as a sanity check. Use realistic but generic slot values (no real customer names). User confirms it renders correctly → playbook is verified.
A future skill ("spawn a page from playbook X") can:
respira_get_playbook(slug) to get the structure + slotsrespira_build_page with the playbook structure populated with the slot valuesThe playbook + design system + brand voice trio is the foundation for the whole content-generation suite. Build this once per site, harvest forever.
text, long_text, image, url, number, boolean, repeater.respira_list_playbooks to check for a same-slug existing playbook; if found, show the diff and ask before updating.Records: site URL hash, builder, playbook slug, slot count, structure section count, whether design system was bound, whether sample spawn succeeded, success/failure. No slot names, no slot values, no playbook content sent.
Endpoint: POST https://www.respira.press/api/skills/track-usage
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.