Agent skill

Managing Use Case Pages

by Comfy-Org in Comfy-Org/workflow_templates

Creates and edits SEO use-case landing pages at comfy.org/workflows/use-cases.

MITAuto-check passedFrontend & Design

Install Managing Use Case Pages

skills CLI
$ npx skills add Comfy-Org/workflow_templates --skill managing-use-case-pages -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install Comfy-Org/workflow_templates managing-use-case-pages --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/Comfy-Org/workflow_templates.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/managing-use-case-pages .claude/skills/managing-use-case-pages && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
managing-use-case-pages
GitHub stars
1.3k
Token cost
~3.5k tokens
SKILL.md length
1,846 words
Files
1
Skills in repo
10
Repo updated
First seen
Licence
MIT

At a glance

Creates and edits SEO use-case landing pages at comfy.org/workflows/use-cases.

  • Works in 9 steps: Collect the facts → Gate check (hard stop) → Supply check (hard stop on zero) → …
  • Asked to: add a use case page
  • SKILL.md covers How to interact with the…, Entry point A: create a new page, Entry point B: edit an… and Entry point C: address review…, plus 2 more sections
  • Calls pnpm, python3 and curl; reaches cloud.comfy.org

What it does

Managing Use Case Pages is an agent skill from Comfy-Org/workflow_templates. Creates and edits SEO use-case landing pages at comfy.org/workflows/use-cases. Guides keyword clearance, workflow supply checks, App Mode verification, the page registry entry, editorial content, quality gates, and the PR. Use when asked to: add a use case page, create a landing page for a keyword, publish a new use case, build a page for <keyword, edit a use case page, update the FAQ on a use case page, change use case page content, address review feedback on a use case page PR. Triggers on: use case page…

Its SKILL.md is about 3.5k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Frontend & Design, covering Landing pages, Help center and FAQ content and Quality gates. The repository describes itself as: ComfyUI template workflows. The licence is MIT.

When your agent uses it

  • Asked to: add a use case page
  • Create a landing page for a keyword
  • Publish a new use case
  • Build a page for <keyword

Example prompts

  • “Use the managing-use-case-pages skill to create and edits SEO use-case landing pages at comfy.org/workflows/use-cases”
  • “/managing-use-case-pages”

Requirements

  • Python 3

Workflow steps

9 steps, taken from the step headings in SKILL.md.

  1. Collect the facts
  2. Gate check (hard stop)
  3. Supply check (hard stop on zero)
  4. App verification (human eyes required)
  5. Apply the conventions and show them
  6. Content
  7. Write the two files
  8. Checks and preview
  9. The PR

What it can do on your machine

Read from SKILL.md and the folder at commit 8be1f8c. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • pnpm
    • python3
    • curl
    • gh

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • cloud.comfy.org

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Managing Use Case Pages loads about 3.5k tokens when it runs. Until then it costs about 155 tokens; SKILL.md has 1,846 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~155
When it runs · the whole SKILL.md, loaded when a task matches
~3.5k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from Comfy-Org/workflow_templates at commit 8be1f8c, republished under its MIT licence (© Comfy-Org). 1,846 words, ~3,543 tokens.

Download SKILL.mdSave it as .claude/skills/managing-use-case-pages/SKILL.md (or your agent's skills folder).
name
managing-use-case-pages
description
Creates and edits SEO use-case landing pages at comfy.org/workflows/use-cases. Guides keyword clearance, workflow supply checks, App Mode verification, the page registry entry, editorial content, quality gates, and the PR. Use when asked to: add a use case page, create a landing page for a keyword, publish a new use case, build a page for <keyword>, edit a use case page, update the FAQ on a use case page, change use case page content, address review feedback on a use case page PR. Triggers on: use case page, use-case page, landing page, SEO page, new page for keyword, page for workflows.

Managing Use-Case Pages

You are helping someone ship or update an SEO use-case landing page on the workflow site (comfy.org/workflows/use-cases/<slug>/). The requester may be a content manager, a growth person, or an engineer; they should never need to understand JSON, TypeScript, or the build pipeline. You handle all of that. They contribute facts, judgment, and approval.

The full rules live in site/docs/use-case-page-guide.md. This skill is the procedure; when it says "per the guide", follow that document.

How to interact with the requester

These rules apply to every step below, whether you run interactively (a person in the conversation) or non-interactively (triggered from a Slack thread or a PR comment):

  1. Decisions are theirs, mechanics are yours. Never invent a keyword, a clearance, or an app link. Never ask them to write JSON. Site-wide conventions (slug, title, h1 patterns) are presented for correction, not asked as questions; decisions and content require an explicit yes.
  2. If you cannot ask the requester directly (no interactive session), post your question where the request came from (the Slack thread or the PR) and stop until a named human answers. Do not proceed on assumptions.
  3. Silence is not approval. Every approval point below requires an explicit yes.
  4. Never merge a PR, never mark your own PR ready without the requester's go-ahead, and never push extra commits to an approved PR (pushing dismisses approvals; batch fixes into one push).

Entry point A: create a new page

Step 1: Collect the facts

Ask the requester for the keyword's row from the planning source named in the guide's "Where the Facts Come From" section (currently an internal keyword sheet; they paste the row or state the values). You need:

  • the keyword (e.g. "ai logo generator")
  • the gate value (brand-safety clearance)
  • the published workflow / app links for it, if any
  • search volume if available (goes in the PR body)

If the keyword has no row, ask whether the SEO owner has cleared it. No confirmed clearance means stop (see Step 2). Record where the facts came from; the PR body will state it.

Also check whether an existing page already serves this keyword: read the keywords.primary and keywords.secondary of every entry in site/src/lib/workflow-pages/use-cases.ts. If one matches, propose extending that page instead of creating a near-duplicate.

Keyword overlap is not the only kind of duplicate, and it is the one that reads clean. Once you know which workflows the new page would show (Step 3), grep those share ids against the same file: if the candidate lead is already another page's appShareId or lead pin, the two pages would front the identical workflow and compete with each other. Propose extending that page instead, and say which one it is.

Step 2: Gate check (hard stop)

If gate is anything other than OK, or clearance cannot be confirmed, stop and tell the requester the keyword needs the brand-safety approver's sign-off first. Additionally run the guide's brand-safety denylist against the keyword yourself and stop on a hit; the build would fail on it anyway, but fail early and explain why.

GATED and GATED-LITE each have their own clearing conditions (guide, "Brand Safety"). Name the outstanding condition rather than saying only "it is gated", and never treat a workflow being publicly browsable on the Hub as evidence that it is cleared for a page.

The same stop applies to an individual pin, not only the page's keyword: a cleared keyword can still pin a gated workflow. Check every candidate pin against GATED_SHARE_IDS in site/src/lib/workflow-pages/use-cases.ts before proposing it, and if one is gated, pin it with its gate value so the intent is recorded but not rendered.

Step 3: Supply check (hard stop on zero)

Find out what the grid would contain before promising a page. Query the live catalog:

bash
HUB_INDEX=$(mktemp)
curl -s 'https://cloud.comfy.org/api/hub/workflows/index?status=approved' -o "$HUB_INDEX"
python3 - "$HUB_INDEX" <<'EOF'
import json, sys, urllib.request
raw = json.load(open(sys.argv[1]))
entries = raw if isinstance(raw, list) else raw.get('workflows', raw)
TAG = 'REPLACE WITH CANDIDATE TAG'
hits = [e for e in entries if TAG in (e.get('tags') or [])]
print(len(hits), 'tag matches')
# The index carries NO reliable app signal; the truth is per workflow. Sweep the
# matches' detail records for workflow_json.extra.linearMode (slow-ish, ~1s each).
apps = []
failed = []
for e in hits:
    sid = e.get('shareId')
    try:
        with urllib.request.urlopen(f'https://cloud.comfy.org/api/hub/workflows/{sid}', timeout=30) as r:
            detail = json.load(r)
        if ((detail.get('workflow_json') or {}).get('extra') or {}).get('linearMode') is True:
            apps.append((sid, e.get('title')))
    except Exception as err:
        failed.append(sid)
        print(' ', sid, 'detail fetch failed:', err)
if failed:
    raise SystemExit(f'{len(failed)} detail fetches failed; retry, do not judge supply from this')
print(len(apps), 'of', len(hits), 'are App Mode')
for sid, title in apps:
    print('  APP', sid, '|', title)
for e in hits[:15]:
    print(' ', e.get('shareId'), '|', e.get('title'))
EOF

Tags are exact strings and the catalog carries far more of them than the obvious ones, so list them before guessing:

bash
python3 -c "
import json,collections
e=json.load(open('$HUB_INDEX'))
c=collections.Counter(t for x in e for t in (x.get('tags') or []))
print(len(c),'distinct tags'); [print(f'{n:4d}  {t}') for t,n in c.most_common()]
"

Then try the tags that plausibly match the keyword. Rules:

  • Zero on-topic matches: no page is possible. The build silently drops a page with an empty grid. Report "blocked on workflow supply, this needs the Hub workflow team" and stop. Never pad the grid with off-topic tags to fake supply.
  • A page wants at least one App and at least one node graph in its grid (guide, "The Quality Bar"). The sweep above gives you both counts; they go in the PR body.
  • Workflows exist but none of the on-topic ones is an App: this is a requester decision, not yours. Ask explicitly: ship now with an honestly empty "Comfy Apps" tab (noting "no on-topic App exists yet" in the PR body), or hold the page until the Hub workflow team publishes one. Wait for the answer.
Step 4: App verification (human eyes required)

If the page should have a "Try on Cloud" button opening an App (appShareId), or a pin marked isApp: true, ask the requester (or the person they delegate) to open https://cloud.comfy.org/?share=<shareId> and confirm: it opens in App Mode (a form, not the node canvas) and its sample assets load. Only after that confirmation may you set those fields. API data alone (linearMode) says it is an app, not that it works.

If no verified app exists, omit appShareId entirely and note it in the PR. An empty "Comfy Apps" tab is honest; a broken button is not.

Step 5: Apply the conventions and show them

Derive and present, without asking (they are site-wide conventions, per the guide):

  • slug: kebab-case, usually ai-<use case> (e.g. ai-logo-generator)
  • title: <Use Case> | Comfy Workflows
  • h1: <Use Case> Workflows

Show the requester: "Your page will be /workflows/use-cases/ai-logo-generator/, titled 'AI Logo Generator | Comfy Workflows'." They only need to speak up if the use-case name is wrong. Propose ~6 secondary keywords from the cluster and get a yes.

Step 6: Content

Sources, in order of preference:

  1. A Figma design for the page: extract the copy from it (if you cannot access Figma, ask the requester to paste the text or drop screenshots and read the text from those). The design's words win. Fill only the gaps, usually metaDescription and extra FAQs, and label which parts you drafted. If the design shows a section the page template does not render, stop and say that part needs an engineer; do not improvise template changes.
  2. Copy the requester provides: format it into the fields.
  3. Nothing provided: draft everything yourself.

Before drafting, read two or three existing files in site/src/content/landing/use-cases/ to match structure and tone. Then write fresh copy for this keyword; never reuse sentences from other pages. Field targets are in the guide's content table (metaDescription 150-160 chars containing the primary keyword; howToUse 4-8 verb-first steps; 6-8 FAQs answering real search questions and claiming nothing the grid cannot do).

Review checkpoint (mandatory): present the draft to the requester section by section in plain English, not JSON: headline, subheading, description, each FAQ, the workflows the grid will show, and what the button opens. Apply their edits verbatim. Do not write any file until they approve the content.

Show full SKILL.md (675 more words)Show less
Step 7: Write the two files
  1. Append the entry to SEO_PAGES in site/src/lib/workflow-pages/use-cases.ts, following the existing entries' comment style (each pin and exclude gets a short reason comment).
  2. Create site/src/content/landing/use-cases/<slug>.json with the approved content.

Touch nothing else. Never edit the resolver, governance, templates, or generated directories for a page addition.

Step 8: Checks and preview

If the environment can run them (Node 24, pnpm 9):

bash
cd site
pnpm install
pnpm exec vitest run use-case
pnpm exec eslint src/lib/workflow-pages/use-cases.ts --max-warnings 0
pnpm run check
pnpm exec astro dev --port 4390

Check http://localhost:4390/workflows/use-cases/<slug>/: on-topic grid, hero image renders, CTA target correct, FAQs render, meta description present in the page source.

If the environment cannot run them: commit, push the branch, and open a draft PR. CI runs the same checks and a preview deployment gets posted on the PR; verify the page on the preview URL instead. Either path is valid.

Second review checkpoint: show the requester the rendered page (local URL, screenshots, or the PR preview link) and get an explicit yes before the PR leaves draft.

Step 9: The PR
  • Branch: feat/site-use-case-<slug>. Commit: feat(site): add the <slug> use-case page.
  • One page per PR.
  • Screenshots: desktop and mobile of the rendered page in the PR description.
  • PR body states: the keyword and volume, where the facts came from, the supply counts (apps / node graphs in the grid), who verified the App Mode link, and which content came from a design or the requester versus drafted.
  • Request review from a site maintainer; QA per the guide. Then hand the PR link to the requester. Your job ends there: humans review and merge.

Entry point B: edit an existing page

  1. Identify the page from the URL or name; slug = the last segment of /workflows/use-cases/<slug>/. Confirm with the requester if ambiguous.
  2. Copy lives in site/src/content/landing/use-cases/<slug>.json; grid/CTA wiring in that slug's SEO_PAGES entry. Show the requester the current content of the sections they want changed, in plain English, before touching anything.
  3. Apply their changes (the brand-safety rules still apply to new text; a gate-relevant change stops per Step 2). Keep all other fields untouched.
  4. Same checks as Step 8, then a PR: fix(site): <what changed> on the <slug> use-case page.

Entry point C: address review feedback on an open page PR

  1. Ask which PR (or take it from the thread). Check out its branch; read the review comments (gh pr view <number> --comments and the review threads).
  2. Propose the changes to the requester first, in plain English, even when the instruction came from a reviewer; they are accountable for the page.
  3. Apply all agreed fixes, re-run the Step 8 checks, and push everything as one batch (pushing dismisses approvals in this repo, so never trickle commits). Reply to the review threads with what changed.

Common requests

Requester saysWhat to do
"Add a page for <keyword>"Entry point A from Step 1
"Here's the sheet row / the keyword is cleared"That is Step 1 input; continue
"Here's the Figma for the page"Step 6, source 1
"Change the FAQ on the <x> page"Entry point B
"Reviewer wants changes on PR #N"Entry point C
"Why is my page not showing?"Check supply: its grid probably resolves to zero (Step 3)
"Make the hero image different"Explain hero = the lead pin's own thumbnail; reorder pins or route a thumbnail change to the Hub workflow team (guide, "Assets")
"Add this extra section from the design"If the template has no such section, stop: engineering change

Important rules

  1. Gate not OK, or unclear: stop. Zero supply: stop. Unverified app: do not set appShareId or isApp.
  2. Never edit files outside the two page files for a page task.
  3. Every page's copy is unique; never copy sentences between pages.
  4. FAQs and descriptions claim nothing the page's workflows cannot actually do.
  5. The requester sees and approves content before files are written, and the rendered page before the PR leaves draft.
  6. Never merge; never push to an approved PR except as one agreed batch.
  7. When the planning source seems to have moved, check the guide's "Where the Facts Come From" section rather than guessing.

© Comfy-Org, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/managing-use-case-pages of Comfy-Org/workflow_templates.

Open the folder on GitHubat commit 8be1f8c

Compare with similar skills

Managing Use Case Pages next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Managing Use Case Pages compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Managing Use Case Pages this skillComfy-Org/workflow_templates1.3k—~3.5kAutomated safety check: PassMIT
Expert Panelericosiu/ai-marketing-skills3.6k2 repos~2.1kAutomated safety check: PassMIT
Refero Designreferodesign/refero_skill299—~5.3kAutomated safety check: PassMIT
Docouture Authoring GuidesInditexTech/weavejs238—~3.9kAutomated safety check: PassApache-2.0
Landing Pageemotixco/claude-skills-founder540—~927Automated safety check: PassMIT
Product Proof SaaSboraoztunc/skills3982 repos~1.1kAutomated safety check: PassApache-2.0

Similar skills

  • Expert Panel

    ericosiu/ai-marketing-skills

    Score, evaluate, and iteratively improve any content or strategy using an auto-assembled panel of domain experts.

    3.6k GitHub starsUsed in 2 repos~2.1k tokens
    Frontend & DesignAuto-check passed
  • Refero Design

    referodesign/refero_skill

    Primary/default skill for UI design, product design, web design, landing pages, dashboards, product screens, redesigns, visual polish, frontend/CSS styling, design systems, components, responsive…

    299 GitHub stars~5.3k tokensUpdated 1 mo ago
    Frontend & DesignAuto-check passed
  • Docouture Authoring Guides

    InditexTech/weavejs

    What to write on each page of a docouture documentation site: the purpose of every page, the section skeleton it needs, what to say in each section, a copyable AsciiDoc starting point and a quality…

    238 GitHub stars~3.9k tokensUpdated yesterday
    Frontend & DesignAuto-check passed
  • Landing Page

    emotixco/claude-skills-founder

    Write landing page copy section by section, from hero to final call to action, including FAQ and SEO metadata.

    540 GitHub stars~927 tokensUpdated 3 days ago
    Frontend & DesignAuto-check passed
  • Product Proof SaaS

    boraoztunc/skills

    Create or redesign SaaS and AI product landing pages where a real workflow, interface, or deterministic demo is the central proof.

    398 GitHub starsUsed in 2 repos~1.1k tokens
    Frontend & DesignAuto-check passed
  • Pricing Page

    sanqiufong/slides-from-anything

    A standalone pricing page — header, plan tiers, feature comparison table, and an FAQ.

    132 GitHub starsUsed in 1 repo~693 tokens
    Frontend & DesignAuto-check passed

More from Comfy-Org/workflow_templates

All 10 skills in this repo
  • Editing Site Content

    Comfy-Org/workflow_templates

    Edits, updates, rewrites, or adds content on the ComfyUI template site pages.

    1.3k GitHub stars~1.8k tokensUpdated today
    Auto-check passed
  • Importing Subgraphs

    Comfy-Org/workflow_templates

    Imports and registers subgraph blueprints into the ComfyUI workflowtemplates repository.

    1.3k GitHub stars~1.5k tokensUpdated today
    Auto-check passed
  • Managing Bundles

    Comfy-Org/workflow_templates

    Manages template bundles, categories, and ordering in the ComfyUI template repository.

    1.3k GitHub stars~1.2k tokensUpdated today
    Auto-check passed
  • Managing MCP Index

    Comfy-Org/workflow_templates

    Builds and maintains templates/index.mcp.json for Comfy Cloud MCP tools.

    1.3k GitHub stars~1.9k tokensUpdated today
    Auto-check: notes
  • Managing Releases

    Comfy-Org/workflow_templates

    Manages releases for this repository: how version bumps, PyPI publishing, and GitHub releases work.

    1.3k GitHub stars~2.4k tokensUpdated today
    Auto-check passed
  • Managing Templates

    Comfy-Org/workflow_templates

    Manages ComfyUI workflow templates end-to-end: add new templates and rename existing ones (files, index metadata, bundles, i18n, package sync).

    1.3k GitHub stars~2.8k tokensUpdated today
    Auto-check passed

Questions about Managing Use Case Pages

What does Managing Use Case Pages do?

Creates and edits SEO use-case landing pages at comfy.org/workflows/use-cases. Managing Use Case Pages is an agent skill from Comfy-Org/workflow_templates.org/workflows/use-cases.

When should I use Managing Use Case Pages?

Managing Use Case Pages fits situations like: asked to: add a use case page; create a landing page for a keyword; publish a new use case; build a page for <keyword.

How do I install Managing Use Case Pages in Claude Code?

Run `npx skills add Comfy-Org/workflow_templates --skill managing-use-case-pages -a claude-code`. Or copy the skill folder (.claude/skills/managing-use-case-pages in Comfy-Org/workflow_templates) into .claude/skills/managing-use-case-pages in your project. Claude Code loads it when a task matches its description.

How do I install Managing Use Case Pages in Codex?

Run `npx skills add Comfy-Org/workflow_templates --skill managing-use-case-pages -a codex`. Or copy the skill folder (.claude/skills/managing-use-case-pages in Comfy-Org/workflow_templates) into .agents/skills/managing-use-case-pages in your project. Codex loads it when a task matches its description.

Can I use Managing Use Case Pages in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Comfy-Org/workflow_templates --skill managing-use-case-pages -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/managing-use-case-pages, .gemini/skills/managing-use-case-pages, .github/skills/managing-use-case-pages and .opencode/skills/managing-use-case-pages in your project.

What does Managing Use Case Pages need to run?

Going by SKILL.md and its folder, Managing Use Case Pages needs the command-line tools its instructions call (pnpm, python3, curl and gh). Our summary lists: Python 3.

Does Managing Use Case Pages access the network?

SKILL.md names 1 domain. In commands or code: cloud.comfy.org; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is Managing Use Case Pages safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Managing Use Case Pages use?

Managing Use Case Pages is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Managing Use Case Pages use?

About 3.5k tokens (SKILL.md is roughly 14k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Managing Use Case Pages?

Skills that share tags, products or a category with Managing Use Case Pages: Expert Panel (ericosiu/ai-marketing-skills, 3.6k stars), Refero Design (referodesign/refero_skill, 299 stars), Docouture Authoring Guides (InditexTech/weavejs, 238 stars) and Landing Page (emotixco/claude-skills-founder, 540 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Managing Use Case Pages?

Comfy-Org (a GitHub organization) maintains it in Comfy-Org/workflow_templates, which has 1,278 GitHub stars. The repository holds 10 skills in this directory. The repository was last updated on October 10, 2026.

Source: Comfy-Org/workflow_templates on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.