Code & Engineering

Security Headers Writer: HSTS, CSP, Frames

Writes the response headers a site is missing, in the format of the person's own host, and keeps the page working. It reads the report line, the current response headers, the file that sets headers and the served head, and gives one line per finding with a fixed code, then a Headers block and a Verify line. It covers a missing or short Strict-Transport-Security, no framing rule, no nosniff, no enforcing Content-Security-Policy (a Report-Only header does not count) and a server version in a header. It enforces only directives that cannot break rendering; script, style, image, font and connect sources go into a Report-Only header built from the origins in the pasted head. It leaves out safe look-alikes: unsafe-inline in style-src only, a long max-age without preload, SAMEORIGIN, a Server header with no number and a missing Referrer-Policy. Exactly No findings. when all is well. Use when a site check reports missing security headers, no HSTS, a short HSTS max-age or a version number in a response header.

Security Headers Writer: HSTS, CSP, Frames is a SKILL.md that writes the response headers a site is missing, in the format of the person's own host, and keeps the page working; an agent buys it once for $0.02 over x402.

Not tested yetNo code, no hidden instructionsv1.0.2 · 21.4 KB · perpetual license

Not for

Reviewing a Content-Security-Policy that is already written, cookie flags, http addresses inside the markup, and hosts or servers not named in the skill, which get headers in the same shape marked unchecked. It reads the pasted headers, files and head; it does not request your site. A Report-Only policy needs the served head, and promoting it is your step.

Not tested yet

This skill was published on 2026-11-08 before its test run. No gain is claimed. The comparison against Claude with and without the skill is planned, and this page will state the result, including a result of no gain.

What is in the file

  • The answer
  • Where the headers come from
  • What is NOT a finding
  • The codes
  • The Content-Security-Policy rule
  • The other headers
  • What each host documents
  • Rules
  • Work in this order
  • Short example

Languages

English.

License

Perpetual, non-exclusive; use and modify for yourself incl. paid work; no resale or republishing. Holder: Georgi Kalchev, aiskills402.com. Full terms.

Versions

Current version 1.0.2, updated 2026-11-08. Whoever bought an earlier version gets new ones free through the same re-download token.

  1. v1.0.2 · 2026-11-08

    Only the test summary text changed (the reason for the missing test run is no longer stated). The file itself is identical to 1.0.1.

  2. v1.0.1 · 2026-11-08

    One phrase of the instructions reworded (the Report-Only line about style sources), so that no free article repeats the paid wording. Rules, codes and the answer format are unchanged; still not tested (published before testing, test run planned).

  3. v1.0.0 · 2026-11-08

    First release. Published 8.11.2026 before testing; test run planned (no measured benefit is claimed). Ordered by the site checker for three of its report lines: missing security headers, no or short Strict-Transport-Security, and a server version in a response header. The idea is ours; no foreign skill was opened, facts come from the public documentation of each host and header (see notes/ideas.md). Output: one line per finding with a fixed code, a Headers block in the host's own format, one Verify line, or exactly `No findings.`

    Price 20000 ($0.02), chosen by the owner's range of 1 to 3 cents. The FAQ entry "Does it help Claude Sonnet?" says it is not measured yet.

FAQ

Which five findings does the answer report?

A missing or short HSTS header, no framing rule, no nosniff, no enforcing Content-Security-Policy (a Report-Only header does not count and the line says so), and a version number in a response header. The answer then gives one Headers block in your host's own format and a Verify line that checks the home page and one deep page, with the https redirect first when HSTS is involved.

How does it keep the page working after the headers go live?

A policy that lists only your own origin for scripts stops inline framework scripts, font hosts and analytics the moment it is enforced, and the page looks broken. The enforcing header carries only framing, plugin and base rules; the script, style, image, font and connect sources go into a Report-Only header built from the origins in your pasted head, and you promote them after reading the reports. HSTS gets no subdomain rule when a plain-http subdomain exists.

Does it help Claude Sonnet?

Nobody can say yet. This file was listed before any model was tried on it, so there is no measured gain for Sonnet or Haiku to quote. Runs with and without the file are scheduled for the next weekly usage window, and the page will report what they show, including the case where they show nothing.

What does a correct setup return?

The reply is the fixed line No findings. and nothing else. A long max-age without preload, SAMEORIGIN with no frame-ancestors, unsafe-inline in style-src only, a Server header with no number and a missing Referrer-Policy earn no line and no remark.

Share

Read this page as Markdown: /skills/security-headers-writer.md.

  • CSP Header Review

    Code & Engineering

    SKILL.md · v1.0.0 · 6.0 KB

    Reviews ONE Content-Security-Policy header, with any note pasted beside it, and lists only the gaps that let injected script run or let the page be framed, one line each with a fixed code, the directive, why it hurts and the fix - or exactly No findings. It catches unsafe-eval or unsafe-inline in the script directive, a star, a data source or a bare scheme as a script source, a policy with neither object-src nor a default-src, a missing base-uri, a missing frame-ancestors, and a report-only header that the note describes as blocking. It leaves out the safe look-alikes, such as unsafe-inline in style-src only, unsafe-inline beside a nonce, a nonce with strict-dynamic, and a data source for images. Use to review a CSP before rollout, to audit the headers of a site, or to check a policy copied from a tutorial.

    $0.01once

    • x402
    • USDC
    • Base
    Get skill

    Tested with Sonnet and Haiku, 26 Oct 2026

  • Cookie Attributes Review

    Code & Engineering

    SKILL.md · v1.0.0 · 5.9 KB

    Reviews the Set-Cookie headers of a response, or the code that sets them, and lists only the attribute mistakes that expose a login cookie, one line each with a fixed code, the cookie, why it hurts and the fix - or exactly No findings. It catches a session cookie sent without Secure, a session cookie that script can read because HttpOnly is missing, SameSite=None without Secure, a __Host- cookie that carries a Domain or a Path other than the root, a Domain attribute wider than the host that needs the cookie, and a login cookie that lives for months. It leaves out the safe look-alikes, such as a theme or language cookie that script reads, a missing SameSite attribute, and SameSite=None together with Secure. Use to review the cookies of a login flow, to audit a framework's cookie settings, or before a security review of a web app.

    $0.01once

    • x402
    • USDC
    • Base
    Get skill

    Tested with Sonnet and Haiku, 26 Oct 2026

  • Cloudflare Workers Review: D1, OpenNext, Fetch

    Code & Engineering

    SKILL.md · v1.2.0 · 9.8 KB

    Reviews pasted Cloudflare Workers code and configuration (a Worker, a Next.js app on OpenNext, D1 queries, wrangler config) for platform pitfalls that pass every local test and then fail in production or quietly cost money. It flags the edge runtime under OpenNext, a fetch to your own Worker's workers.dev address (error 1042), D1 queries that bind more than 100 parameters as data grows, LIKE patterns over D1's 50-byte limit, reading rowsAffected where D1 returns meta.changes, interactive transactions D1 does not have, secrets kept in plain vars, outbound fetch code that treats only a thrown error as failure, a browser User-Agent that bot protection challenges, client hop-by-hop headers forwarded to fetch, cron triggers whose day of the week is written as numbers, and unbounded queries on the request path. Each finding has a fixed code, the place, the reason and a fix, then one verdict. Use to review a Cloudflare Worker before deploy, check D1 or wrangler code, or audit a Next.js app running on Cloudflare.

    $0.05once

    • x402
    • USDC
    • Base
    Get skill

    Tested with Sonnet and Haiku, 8 Oct 2026

  • Soft 404 Fix

    SEO & Content

    SKILL.md · v1.1.2 · 16.5 KB

    Finds which layer makes a page that does not exist answer 200 OK, the soft 404 that Search Console flags, and gives a fix that keeps every real route working. It also handles robots.txt, sitemap.xml and llms.txt served as the page itself. Reads the report line, the config or code that serves unknown paths - a catch-all rewrite to index.html (Netlify, Vercel, Firebase, Cloudflare), an nginx fallback, an app route that sends the page shell, an error page turned into a redirect or a new status, a Next.js notFound after streaming has begun, a text file the build does not copy. One line per finding with a fixed code, file, reason and fix, then one Verify line - or exactly No findings. when unknown paths answer 404. It leaves out safe look-alikes such as an API proxy rewrite, a specific 301 and an error page that keeps its 404. Use when a site check or Search Console reports a soft 404, when a random URL answers 200, when robots.txt, sitemap.xml or llms.txt comes back as HTML, or before shipping a single-page app.

    $0.01once

    • x402
    • USDC
    • Base
    Get skill

    Tested with Sonnet and Haiku, 5 Nov 2026

More in Code & Engineering

  • UI Worst-Case Data

    Code & Engineering

    SKILL.md · v1.0.0 · 6.8 KB

    Turns the props of a UI component (a TypeScript type or a list of props) into strict JSON test data that stresses how it displays, and nothing else. Per prop it picks the worst values for the type, a string that is empty, one word of eighty characters with no space, on two lines, an emoji joined with a zero-width joiner, right-to-left letters or HTML-looking text, numbers at zero and at the large and decimal ends, lists that are empty, hold one item or hold a hundred, optional props left out, and dates at the far ends and across a time-zone edge. Every fixture still fits the declared type: a required prop is never missing, an enum gets only its values, a documented range is never broken, and callbacks are named apart from the data. Use to build fixtures for a component story, a visual test or a layout check, or to find what breaks a card, a list row or a badge.

    $0.01once

    • x402
    • USDC
    • Base
    Get skill

    Tested with Sonnet and Haiku, 29 Oct 2026

  • CSS Motion Review

    Code & Engineering

    SKILL.md · v1.0.0 · 7.4 KB

    Reviews pasted CSS, Tailwind classes or JSX styles for the motion mistakes that hurt real visitors, and lists only those, one line each with a fixed code, the place, why it matters and the fix - or exactly No findings. It catches movement that starts by itself, runs longer than five seconds and has no pause control, which fails WCAG 2.2.2 at Level A, large scaling or panning motion with no reduced-motion rule anywhere, a reduced-motion rule that leaves the large motion running, and layout properties such as height or top animated where transform fits. It leaves out the safe look-alikes, such as a short opacity fade on hover, a transform-only animation, and a reduced-motion rule that really switches the motion off. Use to review the styles of a page section before release, to check a hero, marquee, carousel or accordion for motion safety, or to gate a pull request that adds animation.

    $0.01once

    • x402
    • USDC
    • Base
    Get skill

    Tested with Sonnet and Haiku, 29 Oct 2026

  • Form Input UX Review

    Code & Engineering

    SKILL.md · v1.0.0 · 7.6 KB

    Reviews the HTML or JSX of one form for four input mistakes that frustrate people while they type, and lists only those, one line each with a fixed code, the field, why it hurts the user and the fix - or exactly No findings. It catches paste blocked on a password field, a field that holds a code, a ZIP code or a card number set to type number, or an email address or phone number left as plain text with no type or input mode, autocomplete switched off or given a wrong token on password, username and one-time-code fields, and a submit button disabled until the whole form is valid so the person never learns what is missing. It leaves out the safe look-alikes: a real quantity as type number with a minimum and a maximum, autocomplete off on a site search box, and a button disabled only while the request is running. Use to review a sign-in, sign-up, checkout or contact form before release, or to find why mobile keyboards and password managers misbehave.

    $0.01once

    • x402
    • USDC
    • Base
    Get skill

    Tested with Sonnet and Haiku, 29 Oct 2026

  • Secret Handling Review

    Code & Engineering

    SKILL.md · v1.0.0 · 7.8 KB

    Reviews pasted application code, scripts and config for the four ways a secret leaks from the code that uses it, and lists only those, one line each with a fixed code, the place, who can then read the secret and the fix - or exactly No findings. It catches a secret value written to a log or printed (the key itself, an object or environment dump that contains it), a secret placed in a URL query string, a secret typed into source or a committed file, and a server secret sent to the browser through a public environment prefix or a prop of a client component. It leaves out the safe look-alikes: printing only that a key is present, its length or its last four characters, a publishable key that is public by design, and a secret read from the environment on the server. Use to review code that calls an API with a key, to check a Next.js or Vite project before release, or to gate a pull request that touches credentials.

    $0.01once

    • x402
    • USDC
    • Base
    Get skill

    Tested with Sonnet and Haiku, 29 Oct 2026