Ucoz template creator skill
Skill ucoz-skills/agent-skills/skills/ucoz-template-creator-skill
Creates a complete original uCoz site template and carries one coherent design across the entire site: expressive composition, a responsive framework, templates for every active module, custom Pages, SEO, informers, native rating with a custom SVG sprite, and system pages with no leftover standard styling. Use when building a site template from scratch, performing a complete redesign, or generating, publishing, migrating, and auditing a framework through ucoz-mcp. Do not use for a small edit to one page template or an isolated CSS fragment.From its SKILL.md
npx -y skills add ucoz-skills/agent-skills --skill ucoz-template-creator-skillAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 10 stars10 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.
What its file declares
Copied from the file, not written here
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
13.7 KB, as published. Nobody here has run it
uCoz Template Creator
Create an original, production-ready uCoz design as one framework plus one complete CSS table. Treat publication as a site-wide migration: it overwrites every generated template.
Rule 0 — Usage accounting
After the skill's main work completes successfully, record usage:
skills_tool(action="register_usage", skill_id="ucoz-template-creator-skill")
If the usage API is unavailable or returns an error, show a brief warning and continue the skill's main workflow. Do not ask the user for a UUID, token, or site URL — the site and token come from the active ucoz-mcp connection.
Route the request first
- Full design, new framework, global structure,
new_informer, frameworkglobal_x,popup,config, or PDA design → use this skill andtmaker_tool. - Small change in one existing template → use
templates_tool.patch_template; stop this workflow. - Full replacement of one existing template → use
templates_tool.update_template; stop this workflow. - Small change in an existing CSS table → read
3/3, then usepatch_template; stop this workflow.
Never publish a framework as a shortcut for a local edit. Framework changes do not receive later patch_template edits back; the next framework publication erases them.
Read before generating
Always call, in order:
tmaker_tool(action="skeleton_guide").tmaker_tool(action="skeleton_rules").tmaker_tool(action="project_list")and the relevantproject_get, ordesigns_listand onedesign_get.
Treat the live guide, rules, and retrieved source as authoritative. Never invent service blocks or uCoz variables. Read these bundled references only as needed:
- Platform workflow, module contracts, template migration, and QA: references/FRAMEWORK.md
- Informer creation, placement, and varied layouts: references/INFORMERS.md
- Native rating generator and custom state sprite: references/RATING.md
- Visual directions and semantic SVG system: references/DESIGN-DIRECTIONS.md
- Reusable but stylistically varied patterns: references/EXAMPLES.md
- Custom Pages and SEO: references/CUSTOM-PAGES.md
Establish the design brief
Clarify only missing decisions that materially change the result:
- new design or evolution of the current saved project;
- required modules, sidebars, custom global blocks, informers, and rating;
- content character and desired visual direction;
- desktop (
pda=0) or PDA (pda=1); - whether existing brand assets must be preserved.
Select a direction from DESIGN-DIRECTIONS.md, then adapt it to the content. Do not default every site to dark gradients, glass cards, centered heroes, identical pills, or the same layout.
Before any write, explain that two resources will be replaced: the complete CSS table and all templates generated by the framework. Obtain explicit consent before update_template(3/3) or skeleton_publish(confirm=true). A request to install, activate, test on the site, or show the design on the site counts as publication intent after these consequences are stated; a request to generate, preview, or review does not.
Build the framework
- Start from
project_getordesign_get; do not compose blind. - Preserve valid uCoz expressions, system-language markers, form IDs, and platform variables.
- Include the structural blocks required by the live guide:
header,middle,footer,popup,config, containers, and any selected module blocks. - Keep one visible
$POWERED_BY$in the footer path. - Keep
[TITLE]and[BODY]intact insidepopup. - Declare custom global blocks with lowercase Latin names of 1–10 letters. Their declaration is their render position: nest the marked block at the intended conditional/component location and do not add a second explicit
$GLOBAL_NAME$call. - Inventory every enabled content module before writing views. Add verified
*_entry_viewand*_entry_page__bodyblocks where the framework supports them. For a template without a framework block, style standard uCoz markup in the site-wide CSS and use narrowly scoped SVG masks on known metadata classes when an icon is required; do not publish a framework and leave enabled modules visually standard by accident. - Read the icon contract in
DESIGN-DIRECTIONS.md, then use accessible inline SVG icons withviewBoxandcurrentColor; reuse or adapt assets/ui-icons.svg. Every custom material card and full material page must pair date, views, category, author, comments, downloads/redirects, duration, cart, or voting values with the matching semantic icon. Never use one generic icon for unrelated values, emoji, or a broken icon font. - Build a mobile off-canvas header. Keep fixed overlays outside ancestors using
transform,filter,backdrop-filter,perspective,contain, or relevantwill-change. - Put no CSS rules in the framework. Keep only
<link type="text/css" rel="stylesheet" href="/_st/my.css?v=1">. - Build the document head from verified variables. Prefer
$SEO_TITLE$,$SEO_DESCRIPTION$, and$SEO_KEYWORDS$only whereget_variablesandskeleton_validateconfirm them; preserve[TITLE]as the framework fallback. - Design conditional rendering deliberately. Read the conditional-rendering rules in
FRAMEWORK.md; cover both page/module-level layout branches and item/permission-level optional data. Preserve useful behavioral branches from the selected standard design instead of flattening every page into one unconditional shell. - Define one breadcrumb component for the design and reuse its exact structure, class contract, separator icon, typography, spacing, and responsive behavior in every archive, category, full material, Search, system, and custom Page template that renders breadcrumbs. Only the depth and verified labels/URLs may vary.
Build and save the CSS
For a new site-wide design, generate the complete stylesheet as one coherent file with tokens, base rules, components, module/system markup, responsive rules, focus states, and reduced-motion behavior.
Before replacing CSS or publishing templates, call templates_tool.create_backup. Then publish the stylesheet with templates_tool.update_template(module_id=3, template_id=3, content=<complete CSS>). This call replaces the entire existing CSS table; never send a fragment. Reading the old CSS is not required when the user approved a complete redesign. For later incremental style changes, switch to read_template plus patch_template.
Use /_st/my.css?v=1 in the framework. uCoz rewrites the version for generated templates; manually increment it only in independent custom page templates.
Add custom Pages in the same design
When the user asks for a personal, campaign, about, contact, portfolio, or other custom site page, read references/CUSTOM-PAGES.md. Use page_list and page_get, then create or update only that page through the Pages API. Reuse the active framework shell, tokens, components, SVG vocabulary, and /_st/my.css; add page-scoped rules to 3/3 instead of starting a visually unrelated landing stylesheet. Set the page SEO fields. Do not republish the framework for a single custom page.
Handle informers as a two-publication transaction
Read INFORMERS.md before adding an informer. Select a line, index, strip, related-reading, or product layout according to its location and module; do not clone the same card structure for every informer. Read RATING.md whenever the generated theme contains vote-capable material pages or custom rating sprites.
- Add one or more
new_informerblocks and validate. - Save a project, publish, and record every returned
created_informersitem:title,id,created, and$MYINF_N$code. - Remove every
new_informerblock from the framework. - Place the returned
$MYINF_N$codes at their intended locations. - Validate, save a second project, and publish again.
Do not clean informer tails with template patches. created=1 means created during that publication; created=0 means an existing informer was reused.
Validate before any publication
Run the bundled preflight first:
python scripts/lint_skeleton.py <framework.html>
Then run tmaker_tool(action="skeleton_validate", tmpl=<full framework>). Parse every item in details[]; do not stop at the first error. After a successful validation, run project_save as a source-level recovery point. A saved project is not visible on the live site. project_save_active only marks the final source project active; the design becomes visible only after skeleton_publish regenerates the site templates.
Before publishing, check backup capacity when practical. If the backup limit blocks a write, show the list and obtain permission before deleting a specific old backup.
Only after explicit approval call skeleton_publish(confirm=true, pda=<0|1>, tmpl=<full framework>). The tool creates another automatic template backup. After the final successful pass, call project_save_active with the exact final source so the active project matches the live design. Do not stop at a non-active project_save when the user asked to install or show the design on the site.
Migrate every active template after publication
Framework publication is not the end of a full redesign. Before the initial approval, explain that the migration includes targeted updates of active/system templates that tmaker leaves standard or stale. After every final framework publication:
- Call
modules_list, thentemplates_tool.list_modules; inventory every active module plus Pages, Users, Search, common system templates, globals, forms, comments, and shared partials. - Read every mapped template, not only the templates named in
affected_templates. Always inspect Search19/1and19/2; current tmaker has no verifiedsearch_entry_viewblock. - Classify each template: current theme; standard inner markup that shared
3/3CSS can safely style; or stale/structurally incompatible markup requiring a targeted template change. - For every stale template, call
get_variables, preserve required platform placeholders and behavior, validate the candidate, then usepatch_templatefor a narrow structural fragment orupdate_templatefor a complete one-template replacement. Use the same shell, CSS, SVG vocabulary, breadcrumbs, typography, spacing, and responsive rules as the theme. - Read every changed template back and verify UTF-8, current
/_st/my.css?v=..., no old/.s/t/<design-id>/assets, no literalCONTENT/unknown variables, and exactly one visible$POWERED_BY$on full documents. - Browser-test representative URLs for every active family at desktop and mobile widths. A successful API response or CSS link alone does not complete the migration.
Do not republish the whole framework to repair one missed system template. Record targeted migration changes so the next theme publication can preserve or intentionally reapply them.
QA the result
Use the QA section in references/FRAMEWORK.md. At minimum verify:
- live desktop and mobile pages for each enabled module;
- header, off-canvas menu, popup, archive/category, entry page, comments, forms, and footer;
- identical breadcrumb component and separator treatment across every breadcrumb-bearing module, Search, system template, and custom Page;
- SVG icon alignment and inherited colors;
- every enabled material type has the correct metadata/module icons in both list and full-page states, or a documented standard-markup fallback;
- full material pages render the verified interactive
<?$RSTARS$(...)?>generator with exactly three sprite states and no duplicated rows;$RATING$is only the numeric value/availability condition and must not substitute for the generator; - informer placement after the second publication;
- every important conditional branch with its value present/absent and, where relevant, logged-in/logged-out states;
- no literal unknown
$VARIABLE$, no content overlap, no horizontal scrolling, and visible keyboard focus.
If publication was not explicitly approved, stop after local lint plus skeleton_validate and present the generated framework/CSS for review.
Finish only after the active-template migration above is complete or every remaining limitation is explicitly documented.
Finish
Report the selected design direction, files produced, validation result, saved project ID, publication/PDA status, affected templates, informer codes, CSS replacement, backup status, and pages tested.
After successful completion, call skills_tool(action="register_usage", skill_id="ucoz-template-creator-skill") once. Usage accounting is secondary: do not retry or roll back work if it fails.