packages/cli/skills/pikku-template-clone/SKILL.md
Standard cleanup to run right after a Pikku template is cloned or scaffolded into a new project. TRIGGER when: a Pikku template was just cloned/scaffolded (via `pikku create`, `git clone <template>`, or the user says "I cloned the kanban template / starter / template"), or the working tree still looks like an untouched template (template README, placeholder `@project/*` name in package.json). DO NOT TRIGGER when: working in an established project mid-feature, or editing the template repo itself.
npx skillsauth add pikkujs/pikku pikku-template-cloneInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Run this once, right after a template is cloned or scaffolded into a new
project. The goal is to turn template scaffolding into a real project. Make the
smallest changes and land them as one focused chore: post-clone cleanup
commit, separate from any feature work.
README.md describes the
template, not the user's project — leaving it in place is misleading.
Either delete it (git rm README.md) or rewrite it with the new project's
name and purpose. Never ship a clone with the generic template README.yarn.lock; do
NOT re-add yarn.lock to .gitignore. A real project commits its lockfile
for reproducible installs. The correct pattern is yarn.lock followed by
!/yarn.lock, which commits the root lockfile while keeping generated
per-unit lockfiles under .deploy/ (and e2e/) ignored.name in the root package.json
(and any @project/* or other placeholder names) to the real project.TEMPLATE.md, demo docs, or
placeholder content that only made sense for the template.Do not touch generated files (.pikku/, *.gen.*) or run a full reinstall as
part of cleanup — this step is project hygiene, not a build.
Templates are structure-only starting points. Without this pass, clones carry a misleading README, a placeholder package name, and (historically) a gitignored lockfile — all of which leak template assumptions into a real project. Running it immediately after clone keeps every Pikku project, OSS or Fabric, starting from a clean, honest baseline.
development
Make a Pikku frontend work in both English (LTR) and Arabic / right-to-left languages. Direction is derived from the active locale, applied once at the document root, and the layout mirrors itself — but only if styling is written flow-relative (margin-inline-start, text-align: start, Mantine ms/me) instead of left/right. TRIGGER when: adding Arabic (or Hebrew/Farsi/Urdu), asked to "support RTL / right-to-left / bidi / mirror the layout", or writing layout styles in an app that may run RTL. Builds on pikku-i18n (an RTL language is just another locale file). DO NOT TRIGGER for backend functions or for LTR-only copy changes.
development
Wire i18n into a Pikku frontend (Vite SPA, Vite SSR, or Next.js app-router) with react-i18next + i18next. English by default, every user-facing string goes through a `t()` token, and additional languages are served under `/de` `/es` URL prefixes. TRIGGER when: scaffolding or editing a frontend and writing user-facing text, adding a second language, or asked to "make this translatable / use tokens / add i18n". DO NOT TRIGGER for backend functions, error messages thrown from functions, or log output.
development
Use when translating an n8n Code node body into a real Pikku function body. Triggered when the user opens or points at a stub generated by @pikku/n8n-import (look for `STUB — generated from n8n Code node` in the file's JSDoc), or when the user says 'translate this n8n code', 'port this n8n code node', 'finish the codeStub__... function', etc. The stub file is a `pikkuSessionlessFunc` with a Zod input/output, a JSDoc preserving the original n8n JavaScript verbatim, and a `throw new Error('… — implement me')` body.
tools
Use when mapping n8n integration stubs (gmailTool, slackTool, googleSheetsTool, plain gmail/slack action nodes, etc.) emitted by @pikku/n8n-import to real `@pikku/addon-*` functions. Triggered when the user points at a `<workflow>.integrations.json` manifest produced by `pikku-n8n-import`, says 'map the n8n integrations', 'wire up the gmail/slack stubs', 'replace these stubs with addon refs', or opens a stub file generated from an n8n integration node (the stub's JSDoc says `STUB — generated from n8n node "..." (type "n8n-nodes-base.<service>...")`). For n8n **Code** node stubs use `pikku-n8n-code-translate` instead.