template-gallery
Skill108 starsChanged 5 months agoMITView on GitHub
Use when working in the Awesome Rayfin template gallery repo — creating, validating, or updating templates under templates/, regenerating gallery manifests, or updating the templates table in README. Triggers: awesome-rayfin, template gallery, templates/, new-template.sh, generate-manifest.mjs, rayfin-template.yml, manifest.json, template metadata, templateId, template.name, template.displayName, template.description, rayfin init -t, scaffold template, gallery README, leaf manifest, root manifest
We split this skill into the rules it gives an agent
22 rules. About 0 are common, 13 are distinctive, and 9 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈13
Distinctive · estimate
This author's own choices. Worth a look.
9
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- could be automatic: a setting could enforce it
- Distinctive: line 11
Use this skill when working in the Awesome Rayfin template gallery repo.
- Very specific: line 19
Read docs/template-guidelines.md for the expected template structure.
- Distinctive: line 20
Read the root AGENTS.md for gallery-specific workflow guidance.
- Very specific: line 21
Use the rayfin MCP server from .mcp.json when you need Rayfin SDK or CLI docs.
- Very specific: line 23
Use .scratchpad/ for any temporary or working files — it is git-ignored.
- Very specific: line 36
Update any placeholder content in README.md, manifest.json, and package.json.
- Distinctive: line 41
If the template adds new routes or features, make sure the README explains what the template demonstrates.
- Distinctive: line 45
Verify generated manifests are in sync:
- Distinctive: line 53
If the CLI supports it in your environment, point the output to a new empty directory so you can inspect the scaffolded result safely.
- Very specific: line 54
Check the scaffolded output contains the expected project files, especially package.json.
- Distinctive: line 56
If the repo workflow or your change touches manifest generation, compare the regenerated files before finishing.
- Distinctive: line 60
After changing template metadata or adding/removing templates, run:
- Distinctive: line 71
Do not hand-edit generated manifest content if the script owns it.
- Distinctive: line 88
If any required file is missing, add it before considering the template complete.
- Very specific: line 94
Create a new file in rayfin/data/.
- Distinctive: line 97
Update any app code that reads or writes the new entity.
- Distinctive: line 98
Document the new data model in the template README if it changes what the template demonstrates.
- Very specific: line 102
Create the page component in src/pages/.
- Very specific: line 103
Add the route in src/App.tsx.
- Distinctive: line 105
Verify the page works with the template's auth and data model.
- Very specific: line 113
Use
process.platformguards: when behavior diverges (e.g., Docker daemon detection uses sockets on Unix but named pipes/CLI on Windows). - Distinctive: line 118
When reviewing or validating a template, scan scripts for:
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Template Gallery Skill
Use this skill when working in the Awesome Rayfin template gallery repo. This is an operational checklist for creating, validating, and maintaining gallery templates.
Goal
Make changes that keep individual templates, generated manifests, and gallery documentation consistent.
Before you change anything
- Read
docs/template-guidelines.mdfor the expected template structure. - Read the root
AGENTS.mdfor gallery-specific workflow guidance. - Use the
rayfinMCP server from.mcp.jsonwhen you need Rayfin SDK or CLI docs. - Review a nearby template in
templates/if you need a working example. - Use
.scratchpad/for any temporary or working files — it is git-ignored.
Create a new template
- Run:
./scripts/new-template.sh <name> "<Display Name>" "<description>" - Open the new
templates/<name>/directory. - Customize the generated files, especially:
src/for the application UI and client logicrayfin/data/for entities and schema definitionsrayfin/rayfin.ymlfor service configuration
- Update any placeholder content in
README.md,manifest.json, andpackage.json. - Confirm
package.jsonincludes:template.nametemplate.displayNametemplate.description
- If the template adds new routes or features, make sure the README explains what the template demonstrates.
Validate a template
- Verify generated manifests are in sync:
node scripts/generate-manifest.mjs --check - Smoke-test scaffolding in a fresh scratch directory:
If the CLI supports it in your environment, point the output to a new empty directory so you can inspect the scaffolded result safely.rayfin init -t . --template-name "<name>" - Check the scaffolded output contains the expected project files, especially
package.json. - Re-open the source template's
package.jsonand confirmtemplate.name,template.displayName, andtemplate.descriptionare present and correct. - If the repo workflow or your change touches manifest generation, compare the regenerated files before finishing.
Update the gallery after template changes
After changing template metadata or adding/removing templates, run:
node scripts/generate-manifest.mjsThis regenerates:
- root
rayfin-template.yml - per-template
rayfin-template.yml - the templates table in
README.md
Do not hand-edit generated manifest content if the script owns it.
Required template structure
Each template should include these files:
package.jsonwith template metadatamanifest.jsonrayfin-template.ymlrayfin/rayfin.ymlrayfin/data/schema.tsREADME.mdindex.htmlsrc/main.tsxtsconfig.jsonvite.config.ts
If any required file is missing, add it before considering the template complete.
Common patterns
Add a data entity
- Create a new file in
rayfin/data/. - Define the entity with decorators from
@microsoft/rayfin-core. - Export the entity from
rayfin/data/schema.tsso the schema includes it. - Update any app code that reads or writes the new entity.
- Document the new data model in the template README if it changes what the template demonstrates.
Add a page
- Create the page component in
src/pages/. - Add the route in
src/App.tsx. - Link to the page from navigation or the relevant entry point.
- Verify the page works with the template's auth and data model.
Cross-platform compatibility (Windows + macOS/Linux)
Templates are used on Windows, macOS, and Linux. Check for platform issues when adding or modifying scripts:
- Prefer
.mjsover.shfor any script that end users run. Shell scripts are fine for contributor tooling only (e.g.,scripts/new-template.sh). - No Unix-only assumptions in runtime scripts: avoid hardcoded Unix socket paths (
/var/run/docker.sock), symlinks, or POSIX-only APIs without a Windows fallback. - Use
process.platformguards when behavior diverges (e.g., Docker daemon detection uses sockets on Unix but named pipes/CLI on Windows). - Use
cross-envfor environment variables in npm scripts — never rely onVAR=value cmdsyntax. - Avoid path separators in JS: use
path.join()/path.resolve()instead of string concatenation with/. &&chaining in npm scripts is safe (works in cmd, PowerShell 7+, and bash).
When reviewing or validating a template, scan scripts for:
- Hardcoded Unix paths (
/var/run/,/tmp/,~/.docker/run/) - Socket or pipe assumptions without platform checks
- Shell-specific syntax in npm scripts (backticks,
$(...),export) - File permission operations (
chmod,chown) without guards
Final checklist
- Template structure matches
docs/template-guidelines.md - Template metadata in
package.jsonis complete node scripts/generate-manifest.mjs --checkpassesrayfin init -t . --template-name "<name>"works for the changed template- Generated gallery files were refreshed with
node scripts/generate-manifest.mjswhen needed - README and manifest content reflect the actual template behavior
In this repository33 other files it gives its agents.
- AGENTS.mdAGENTS.md
- templates/angular-blankapp/AGENTS.mdAGENTS.md
- templates/angular-dashboard/AGENTS.mdAGENTS.md
- templates/campus-scheduler/AGENTS.mdAGENTS.md
- templates/fabric-atlas/AGENTS.mdAGENTS.md
- templates/field-technician/AGENTS.mdAGENTS.md
- templates/finance-analytics/AGENTS.mdAGENTS.md
- templates/ibcs-trainer/AGENTS.mdAGENTS.md
- templates/maritime-insights/AGENTS.mdAGENTS.md
- templates/paragliding-insights/AGENTS.mdAGENTS.md
- templates/slide-deck/AGENTS.mdAGENTS.md
- templates/static-blankapp/AGENTS.mdAGENTS.md
- templates/todo-local-experimental/AGENTS.mdAGENTS.md
- templates/universal-app/AGENTS.mdAGENTS.md
- rayfinSkill
- rayfinSkill
- rayfinSkill
- rayfinSkill
- rayfinSkill
- rayfinSkill
- rayfinSkill
- rayfinSkill
- analyticsSkill
- app-designSkill
- authenticationSkill
- build-workflowSkill
- capability-routerSkill
- data-modelingSkill
- daxSkill
- fabric-dataSkill
- graphein-visualsSkill
- headless-previewSkill
- visualsSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

