agentleFS
onbluerosesonblueroses/strata/skills/obscured-site/SKILL.md

obscured-site

Skill3 starsChanged 26 days agoMITView on GitHub

Minimize browser-delivered implementation and apply the default obscuring pass when building or updating a website or static web app. Balance exposure against loading and interaction costs. Supports static build output; does not authorize deployment or unrelated security work.

The file

Show its rules and text

We split this skill into the rules it gives an agent

16 rules. About 0 are common, 10 are distinctive, and 6 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈10

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 6

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Avoid shipping a framework runtime solely to render otherwise static content.

    line 20
  2. Distinctive:

    Check repository visibility and intended publication before writing explanatory comments.

    line 41
  3. Distinctive:

    Check those publication surfaces separately within the authorized scope.

    line 53
  4. Very specific:

    Run obscure init, choose public/private mode and meaningful sensitive strings, then build and verify the actual output against its private …

    line 58
  5. Distinctive:

    Keep source, public output, gated content and private manifests confined and separate.

    line 64
  6. Very specific:

    Use obscure check-url against the intended deployed copy when rollout is already authorized.

    line 71
  7. Very specific:

    Read the README's coverage limits: import maps, dynamic imports, runtime DOM changes and other routes are not a complete browser trace.

    line 75
  8. Distinctive:

    Verify actual behavior through the authorized browser integration and preserve a rollback before rollout.

    line 78
  9. Very specific:

    Every build records a new seed.

    line 81
  10. Distinctive:

    Use the dependency's selected-function routes:

    line 91
  11. Very specific:

    Keep server-suitable logic in an explicitly authorized server registry outside the browser import graph.

    line 93
  12. Distinctive:

    Keep current mode defaults and recorded budgets.

    line 122
  13. Distinctive:

    Use the dependency's testing-a-proposed-layer and persistent-false-discovery methods.

    line 130
  14. Distinctive:

    Start with representation-appropriate extraction, padding removal, voting, boundary/history probes and source repair.

    line 131
  15. Distinctive:

    Only then run fresh matched analysts with frozen artifacts, public interfaces, seeds, budgets and execution-accounting rules.

    line 136
  16. Very specific:

    Use the dependency's checkpoint capture from before inspection.

    line 143

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Obscured site

This skill depends on a separate obscuring build pass that initializes a site policy, transforms static output, writes a private manifest, verifies output, and checks a deployed URL. Set OBSCURE_REPO in config.example, then read that dependency's README, review notes, and maintained status before integration. Integrating a site does not require restarting research.

Minimize what the browser receives

Minimize real application code delivered to the browser before obscuring it, subject to the site's loading, interaction and availability requirements. Inspect the actual build and import graph: remove unused code and dependencies, prefer static HTML/CSS for static content, and hydrate only the parts needing interaction. Avoid shipping a framework runtime solely to render otherwise static content.

Within the authorized scope, keep server-suitable implementations off the client and return only the results the product needs, using the selected-function routes below where appropriate. Keep immediate input handling, animation and other latency-sensitive behavior local when server round trips would harm the experience. Assess cold starts, network latency, caching and offline needs before moving work. Code splitting and lazy loading can reduce initial delivery; they do not keep publicly fetchable code private. Browser-decrypted modules and bytecode are still delivered implementations.

Compare before/after real JavaScript bytes, added decoy bytes and compressed transfer sizes separately. Measure cold/warm startup and representative interactions under comparable conditions, including added requests and server round trips; label automation overhead and measurement limits. Choose the smallest exposed implementation that meets the site's measured performance needs. Record the reason for meaningful client-side logic that remains. Preserve the decoy policy below; minimizing application code does not silently waive its budgets or opt-outs.

Audit comments and public source

Check repository visibility and intended publication before writing explanatory comments. Keep private design notes, security analysis, internal paths and hints identifying real versus decoy logic outside public source. Public comments should contain only the rationale needed by their intended readers; respect explicitly requested public documentation and open-source goals.

Inspect the actual served HTML, JavaScript, CSS and SVG, including inline and embedded source such as shaders. Use syntax-aware production transforms to remove nonessential explanatory comments, preserving required license notices and framework hydration markers. Verify the result with parsers or appropriate format checks; an unsupported format is an unverified surface. Build-time stripping does not hide comments in a public repository, its published history or other published copies. Check those publication surfaces separately within the authorized scope. Comment removal reduces disclosure of intent; it does not make delivered logic secret.

Integrate and verify

Run obscure init, choose public/private mode and meaningful sensitive strings, then build and verify the actual output against its private manifest. Preserve the visitor experience, accessibility, legal pages and the site's explicit opt-outs. Opt-outs require a written config reason. For frameworks without static output, test an appropriate integration before claiming this pattern applies.

Keep source, public output, gated content and private manifests confined and separate. Follow the repo's symlink, regular-file and quarantine rules. Never put secrets or private analysis in browser output. Run this pass before precompression; compressed source sidecars bypass protection and are rejected. Disable inline source maps upstream. Missing or obsolete manifest evidence requires a rebuild, not weaker verification.

Use obscure check-url against the intended deployed copy when rollout is already authorized. It verifies inventoried HTML, JavaScript and CSS, parsed HTML asset references, and the unmapped static JavaScript import/re-export graph, including query variants. Only matching HTML/module bytes may extend discovery. Read the README's coverage limits: import maps, dynamic imports, runtime DOM changes and other routes are not a complete browser trace. A changing <base> fails explicitly because the checker does not emulate CSP/parser timing. Verify actual behavior through the authorized browser integration and preserve a rollback before rollout. Local checks alone do not establish deployed behavior.

Every build records a new seed. --seed <32 hex characters> reproduces the same inputs and policy; --watermark <label> is publicly readable, so use generic text. The ruling of 2026-10-10 keeps AI crawlers allowed: the pass reduces exposed implementation without making crawler exclusion its goal. Keep existing llms.txt and deliver the same pages to bots and people. Decoy pages use the fixed claim-free copy, noindex and robots Disallow; honeypot links appear only in private mode. These directives do not guarantee that a URL never appears in search results.

Protect important implementations

Use the dependency's selected-function routes:

  • Keep server-suitable logic in an explicitly authorized server registry outside the browser import graph. Validate inputs, authorize the caller and return only the result the product needs; use validateResult to check the serialized shape. Outputs remain an inference channel. Account/request-owned parameters must come from a trusted workflow; preserve inputs users legitimately choose.
  • For supported pure functions that must run locally, use opt-in bytecode and verify behavior. Unsupported selections must fail rather than fall back to plain code.
  • Deliver private self-contained modules through the existing authorized AES-GCM path when appropriate. Browser-delivered code, bytecode and decrypted content remain recoverable. Single use describes a delivery nonce, not permanent secrecy.

These are per-site integration choices, not automatic migrations of working logic. The server recipes do not supply login, provisioning or transaction isolation.

Decoys and performance

Retain the requested substantial, varied fake code mixed through the same scrambling pass as eligible application code. Use the existing seeded decoyCode budgets; inspect skipped scripts and verify generated code survives the final build. Separate decoy pages or a few token stubs do not satisfy this requirement. Record real/added bytes and compressed transfer size; measure startup and interaction costs for the site. Decoys must have no network, storage or other externally visible side effects. Reductions or opt-outs require a written reason.

For selected virtualized functions, retain the bounded semantic variant pools and encoded routing. Check genuine behavior and observable decoy divergence on the actual input domain, including output types, numeric boundaries and invariants. Private analysis stays private; no public truth labels or fixed genuine slot.

Keep current mode defaults and recorded budgets. More encryption, padding or false members is not demonstrated protection. The dependency's current evidence includes exact fresh-agent recovery, cheap repairs and isolated false completions; it does not establish reliable persistent deception. Experimental source hints and alternate pools stay in benchmarks until matched evidence supports promotion.

When explicitly improving the defenses

Use the dependency's testing-a-proposed-layer and persistent-false-discovery methods. Start with representation-appropriate extraction, padding removal, voting, boundary/history probes and source repair. Carry counterexamples into deeper layers and run the dependency's minimum-counterexample-cover control: sequential first-found failures can exaggerate semantic depth.

Only then run fresh matched analysts with frozen artifacts, public interfaces, seeds, budgets and execution-accounting rules. Capture candidate bytes and explicit completion/confidence claims before hidden grading. Wrong completion is evidence; a decoded fake, admitted uncertainty or tool ERROR is not. Include a working positive control and report successful recovery alongside failures. Measure compressed bytes and execution costs before promoting an increase in strength.

Use the dependency's checkpoint capture from before inspection. save-checked retains candidate, exact public interface, preflight result and hash-bound receipt; include public executions in accounting. It supports the closed scalar evaluator. Structured ledger inputs still use capture-only save with separately recorded grading: do not silently run arbitrary candidate JavaScript in a VM as a substitute. Local timestamps and self-reported execution ledgers are not tamper-proof or complete accounting.

A skill or local template grants no deploy, production install, DNS/cache or credential authority. Use the existing per-site authority.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.