Clifier
Skill popra/skills/clifier
Create production-ready website-automation CLI packages in TypeScript for Deno, including a CLI plus companion client library, for repeatable website workflows such as scraping, form submission, downloads, login/bootstrap flows, session reuse, stable JSON output, and optional `deno compile` packaging. Use when the Agent needs to turn a website task into a reusable tool.From its SKILL.md
npx -y skills add popra/skills --skill clifierAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
7.6 KB, ~1.7k tokens by cl100k_base, as published. Nobody here has run it
Clifier
Generate a reusable website-automation package, not a one-off script. Default to a Deno CLI plus a runtime-neutral client library. Keep the result concise, polished, and JSR-ready.
Bias toward small, sharp, readable software: production-ready, highly usable, and free of wasted motion.
Use references progressively. Read only what the current step needs:
- command surface: references/cli-command-patterns.md
- site investigation: references/investigation-workflow.md
- runtime choice: references/fetch-vs-playwright.md
- auth/session reuse: references/auth-and-session.md
- docs/output: references/output-and-docs.md
- JSR packaging: references/jsr-publishing.md
Workflow
- Define the CLI first.
- Investigate the site with
playwright-cli. - Prove or disprove
fetch. - Decide on
fetch, hybrid, orplaywright-cli-backed browser automation. - Generate from
assets/templates/deno-cli/. - Validate the happy path and publishability.
Define The CLI
Read references/cli-command-patterns.md before naming commands.
- Prefer product nouns, then verbs.
- Use direct top-level verbs only for cross-cutting commands such as
login. - Prefer
@cliffy/commandfor Deno CLIs. - Keep the CLI thin: parse flags, call library code, format output, and handle Deno-specific filesystem or session work.
- Always include a root
-v, --versionflag. - Keep the surface small, predictable, and guessable from the product vocabulary.
- Make the happy path obvious from
--help. - Map meaningful UI controls to flags before finalizing commands.
- Give high-value explicit flags a shorthand alias when it is clear and
memorable, such as
--session-path/-sand--out/-o. - Put global flags before the command path in docs, help examples, and
agent-facing snippets, such as
tool-name --json --session-path ~/.auth/[email protected] jobs get <job-id>. Keep command-specific flags near the command they configure, such astool-name --json jobs download <job-id> --out ./downloads. - Keep operational commands non-interactive after auth/bootstrap.
- Emit stable IDs from create-style commands and accept them directly in follow-up commands.
- Keep only commands that deliver real value. Do not keep
doctor,login, or other template-era commands unless the real tool needs them.
Investigate
Read references/investigation-workflow.md before implementing.
- Use
playwright-clifor discovery and for unavoidable browser automation. Do not build the generated package around the vanilla Playwright runtime. - Default to Chrome unless the user or site requires another browser.
- Reproduce one real happy-path run.
- Capture only the requests, identifiers, auth inputs, downloads, and UI controls that matter.
- Ask the user for manual login, MFA, sample inputs, or copied cookies or headers when needed.
- Clean up temporary investigation artifacts unless they are intentionally reused by the generated tool.
Choose Runtime
Read references/fetch-vs-playwright.md before deciding.
- Prefer
fetch. - Use hybrid only when
playwright-cliis needed for login or bootstrap and the saved state can be translated into the exact runtime cookies, headers, tokens, CSRF values, or other inputs thatfetchneeds. - Use
playwright-cli-backed browser automation only after a serious failed attempt to makefetchor hybrid work. - Explain briefly what was investigated, how auth works at runtime, and why the chosen runtime is the simplest robust option.
- Validate at least one authenticated
fetchrequest before calling a hybrid design production-ready.
Handle Auth
Read references/auth-and-session.md when auth is required.
- Prefer explicit flags and environment variables.
- Do not add a general config file by default.
- For browser-login flows, default session storage to
~/.auth/<project_namespace>@<project_repo>.json, resolving~through the OS home directory. For a JSR name such as@acme/my-tool, use~/.auth/[email protected]. - Keep
--session-path, -s <path>as the explicit override onloginand later authenticated commands. - When a tool supports multiple auth bootstrap methods, prefer an
authnoun group and validate any automatic cookie discovery against the target site. - Never assume browser storage state is sufficient for plain
fetch; prove how runtime auth is constructed. - Keep secrets out of normal output,
--jsonoutput, and repo files.
Generate The Tool
Start from assets/templates/deno-cli/.
- Prefer the simplest clear implementation.
- Keep the package root for the library and export the CLI from
./cli. - Keep
mod.tsas the public library root andcli.tsas the Deno CLI entrypoint. - Keep code compact and readable.
- Prefer expressive names and straightforward structure.
- Keep runtime-neutral client code under
lib/. - Include
deno compiletasks for all supported Deno targets. - Keep compiled binaries under
bin/. - Make
compilethe aggregate task that builds every supported target, and add one task per target for direct use. - Include Deno helper task(s) for reading
deno.json.versionand comparing it to the previous git ref used by the release workflow. - Include a GitHub Actions release workflow that watches
deno.json.version, uses the Deno version helper task(s), compiles all targets, creates a GitHub Release with the binaries, and publishes to JSR. - Include
name,version,exports, anddeno publish --dry-runvalidation. - Treat
deno.jsonas the single source of truth for package and CLI version metadata. Do not duplicate the version string incli.ts. - Avoid indirection unless it earns its keep.
- Make the intent obvious from names, control flow, and file layout.
- Prefer code that is easy to scan over clever or aggressively compressed code.
- Favor direct solutions over ceremony, helper churn, or architecture that only serves the template.
- Detect missing mandatory runtime dependencies and print exact install instructions when a command needs them.
- Remove template placeholder text, example commands, and unused support files from the final generated package.
- Remove scaffolding layers that do not improve usability.
Finish
Read references/output-and-docs.md while polishing the result.
- Deliver concise human output, stable JSON, useful errors, and clear next-step affordances.
- Include a root
README.mdand a rootCOMMANDS.md. - Make
COMMANDS.mda cheat sheet: short, scan-friendly, and centered on copy-pasteable CLI invocations rather than prose. - Keep command names, help text, docs, and examples aligned.
- When the tool depends on
playwright-cli, browser binaries, or other non-bundled runtime dependencies, validate the missing-dependency path too. - Validate
--help,deno task check, the happy path, anddeno publish --dry-run. - Validate a real invocation path users will actually use, not only local task wrappers.
What ships with it: 16 files
44.8 KB alongside SKILL.md, 4 of them executable
assets/
- templates/deno-cli/cli.tsruns1.3 KB
- templates/deno-cli/COMMANDS.md2.3 KB
- templates/deno-cli/deno.json1.3 KB
- templates/deno-cli/deno.lock1.4 KB
- templates/deno-cli/lib/client.tsruns2.1 KB
- templates/deno-cli/LICENSE1.0 KB
- templates/deno-cli/mod.tsruns397 B
- templates/deno-cli/README.md1.8 KB
- templates/deno-cli/scripts/version.tsruns3.0 KB
references/
- auth-and-session.md5.7 KB
- cli-command-patterns.md8.2 KB
- fetch-vs-playwright.md3.7 KB
- investigation-workflow.md4.4 KB
- jsr-publishing.md2.6 KB
- output-and-docs.md4.9 KB
- README.md618 B