feat: refine template manifesto with use case tags#775
Open
DaveHanns wants to merge 3 commits into
Open
Conversation
patrikbraborec
approved these changes
May 19, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Refines the
useCasestags across Actor templates so the Console wizard's "use case + language" filter produces a meaningful split, polishes a handful of template descriptions, and adds in-place documentation for what each use case represents.Changes
useCasestag refinementspython/ts/js-empty:[WEB_SCRAPING]→[STARTER](empties are topic-agnostic, not scrapers).python/ts/js-standby(×3): addedINTEGRATIONto[STARTER](Standby actors serve HTTP, callable by outside systems).python-mcp-proxy,python-mcp-empty,ts-mcp-proxy,ts-mcp-empty(×4): addedINTEGRATIONto[AI](callable by AI clients via the MCP protocol).ts-playwright-test-runner:[WEB_SCRAPING]→[AUTOMATION](it's a test runner — automation, not scraping).python-playwright/python-selenium: addedAUTOMATIONto[WEB_SCRAPING](pure browser tooling without a scraping framework — repurposable for automation).cli-start: filled in the previously missinguseCaseswith[STARTER, INTEGRATION](the Dockerfile sets upubito install third-party binaries — Actorization is integration).Description polish
python-crawlee-beautifulsoup,python-empty,python-standby,python-crawlee-parsel,python-crawlee-playwright,python-crawlee-playwright-camoufox,python-smolagents,js-langchain,cli-start) — clearer, more direct phrasing, and consistent grammar (e.g. "Start from a given start URLs" → "Start from a URL").Documentation
_useCaseDescriptionsfield at the manifest top-level — a self-contained reference for what each tag represents. Canonical enum + JSDoc lives inapify-core(TEMPLATE_USE_CASESinsrc/packages/consts/src/templates.ts).Tagging principles applied
The tagging principle is: tag for what the template IS (its primary framing/purpose), not what it COULD become. Concretely:
STARTER(no inherent topic).STARTERis for entry-level / first-Actor scaffolds. Skeletons explicitly aimed at experienced devs don't qualify.AUTOMATIONin addition toWEB_SCRAPING— the underlying tool is genuinely repurposable.WEB_SCRAPINGonly — Crawlee's crawler-specific abstractions (request queue,*Crawlerclasses) orient the project toward scraping, even when paired with Playwright/Puppeteer.AI-only, even when they crawl as part of their workflow. Calling Apify Actors as tools or fetching web data is a means; the AI framework demo is the product.INTEGRATIONis reserved for templates that meaningfully bridge Apify with external systems: Standby HTTP servers, MCP servers callable by AI clients, or third-party-tool wrappers (cli-start). Not "any Actor that has an API surface" — that would be everything.Coverage after changes
Use case → templates
WEB_SCRAPINGSTARTERAIINTEGRATIONAUTOMATIONUse case × language
WEB_SCRAPINGSTARTERAIINTEGRATIONAUTOMATIONOpen for refinement
This pass focused on obvious mistags and missing tags. Further iteration welcome — especially around:
AUTOMATION= 1 each —js-cypressandts-playwright-test-runnerrespectively. Both are test runners. No general-purpose JS/TS browser-automation template exists; an equivalent ofpython-playwright/python-seleniumfor each would fill the gap.INTEGRATION= 2 —js-standby+cli-start. No JS MCP template exists; adding one would mirror the Python/TS coverage.No changes to template content or behavior — only metadata in
manifest.json.