Huashu Design
alchaincyf · Skill
Turns a one-line request in your AI agent into a finished design: a launch animation, a clickable app prototype, an editable slide deck, an infographic or a se…
An n8n workflow you start by hand: it reads a Markdown prompt from a GitHub repo and fills its double brace placeholders with values you set. An AI agent on Ollama then runs the finished prompt.
Prompt file fetched from GitHub and filled with your values is an n8n workflow in the Developer category, listed by Mindket. It is free. This is version 1, last updated on . Download it on this page or copy its JSON, then import it into an n8n canvas. Nothing runs until you activate it in n8n.
Manual run
It starts when you press Execute workflow, with eight values set in the setVars node:
The model’s reply to your prompt, filled in with your values, or an error that lists the placeholders you forgot to set
What you need before you start.
Prompt storage
Fetches the prompt file from a repo with the GitHub node’s file get step.
NeedsA GitHub credential that can read the repo
Language model
Runs the filled prompt through an AI agent on a model you have pulled, llama3.2 unless you pick another.
NeedsAn Ollama server, with its base URL in an Ollama credential
Checked by Mindket on 13 Nov 2026
This n8n workflow keeps prompts in a GitHub repo and fills them in at run time. A manual trigger starts it, and a Set node holds the repo, the file’s folder and name, and the values for the prompt, such as company, product, features and sector. The GitHub node fetches the file and Extract From File reads it as text. A check lists any placeholder with no value, a Code node fills in the rest, and an AI agent on Ollama runs the result. Thirteen nodes do the work, beside four sticky notes.
Marketers and prompt writers who keep prompts as Markdown files in a repo and want to reuse each one with new values. Skip it if you have no prompt repo yet. As imported, the file name SEO/keyword_research.md points to a file you must write yourself.
| Industry | Who uses it | How they use it | Example |
|---|---|---|---|
| SEO | Content marketers | Keep a keyword research prompt in a repo and fill the product and sector for each client | A marketer runs one prompt for a clinic and then for a gym by changing two values. |
| Agencies | Prompt writers | Version prompts in Git and reuse them across clients | A writer reviews a prompt change as a pull request before the workflow uses it. |
| Product teams | Developers | Keep prompts out of the workflow, so an edit needs no new import | A developer edits a Markdown file and the next run uses the new text. |
| Operations | Automation builders | Stop the run when a prompt asks for a value nobody set | A builder sees which placeholder is missing before any model call is made. |
You need a little n8n: import a file, add a GitHub credential and an Ollama credential, and write one prompt file with placeholders in it.
Any n8n that can reach GitHub and your Ollama server will run it. A private repo works when the credential can read it.
Download saves a zip with workflow.json and Mindket’s setup notes in your downloads folder. A GitHub credential and an Ollama address are all it needs.
| Need | Detail |
|---|---|
| n8n | On n8n Cloud or on a server of your own |
| GitHub | A repo with a Markdown prompt file, and a GitHub credential that can read it, such as a personal access token |
| Ollama | Installed and running, with a model pulled. The agent uses the node’s default model, llama3.2, unless you pick another |
| A prompt file | Text with placeholders between double braces, such as {{ setVars.product }} |
workflow.json.GitHub.Ollama Chat Model. Pick the model you have pulled.setVars. Replace <YOUR_GITHUB_ACCOUNT>, <YOUR_PROMPT_REPO> and <YOUR_COMPANY> with your own values. Set path to the folder of your prompt file, ending in a slash, and prompt to its name.{{ setVars.product }}. The word after the last dot must be a field of setVars.promptResponse, in Prompt Output.Put the values in setVars and press Execute workflow. The workflow fetches the file, finds every placeholder and checks that setVars has a field for each. If one is missing, the run stops with an error that names it. Otherwise the filled prompt goes to the agent.
| To change | Where |
|---|---|
| The prompt file | path and prompt in setVars |
| The repo | Account and repo in setVars |
| The values | company, product, features and sector in setVars, or a new field of yours |
| The model | model in Ollama Chat Model |
| What the agent does | AI Agent, whose text is the filled prompt |
A repo holds SEO/keyword_research.md, a prompt that uses {{ setVars.product }} and {{ setVars.sector }}.
With product set to Manual Therapy and sector to physical therapy, the workflow swaps each placeholder for those words. AI Agent receives the finished prompt, and Prompt Output returns the model’s answer. A placeholder with no matching field, such as {{ setVars.budget }}, stops the run and names budget.
If you are new. n8n draws a workflow as boxes joined by lines, and each box, a node, does one job. This one is plumbing around a single idea: the prompt lives in Git, not in n8n. Run it once with a placeholder missing on purpose to see the stop message.
For experts. Placeholders are matched by their last word, so {{ setVars.product }} and {{ product }} both read the product field.
| Node | What it does | What to know |
|---|---|---|
GitHub | File, Get, with the owner, repo and path taken from setVars | The file comes back as a binary field named data |
Extract from File | Reads that file as text | The text lands in data, and SetPrompt keeps it |
Check All Prompt Vars Present | A Code node that lists the placeholders and the fields setVars lacks | If stops the run when any is missing |
replace variables | A Code node that swaps each placeholder | It reads every field of setVars and leaves an unknown placeholder as it is |
AI Agent | Agent 1.7 with the filled prompt as its text | No tools are connected, so it works as a plain prompt runner |
The original copy held its author’s account and repo, and the values it filled in did not match its own check.
<YOUR_GITHUB_ACCOUNT>, <YOUR_PROMPT_REPO> and <YOUR_COMPANY>. Its replace step also had features and a keyword written into the code, so the values in setVars were checked but not used. Mindket’s copy reads every field from setVarsSEO/keyword_research.md is a file of the original copy’s repo. Write your own file or point path and prompt at one you haveOllama Chat Model sets none, so the node uses its default, llama3.2. Pull it or pick anotherAn n8n workflow you start by hand. It reads a Markdown prompt from a GitHub repo, replaces the placeholders written
between double braces with values you set, and sends the finished prompt to an AI agent that runs on Ollama. A missing
value stops the run before any model call.
workflow.json: the workflow as n8n exports it, 17 nodes. 13 do the work and four are sticky notes that label theREADME.md: these notes.setVars held its author's GitHub account, the name of their prompt repo and a business name. Mindket's copy writes<YOUR_GITHUB_ACCOUNT>, <YOUR_PROMPT_REPO> and <YOUR_COMPANY> there. The other values, product, features,sector, path and prompt, stay as sample text.replace variables, the code held its own object of values, with features and a keyword written into the code.setVars, so a value set there was checked but never used. Mindket's copy reads everysetVars, so one list drives both steps.GitHub and Ollama Chat Model nodes were linked to credentials in their author's n8n. The links are gone, soOllama Chat Model sets none in the file, so the node uses itsllama3.2.workflow.json.GitHub.Ollama Chat Model. Pick the model you haveollama pull llama3.2.setVars. Replace <YOUR_GITHUB_ACCOUNT>, <YOUR_PROMPT_REPO> and <YOUR_COMPANY> with your own values. Setpath to the folder of your prompt file, ending in a slash, and prompt to its name.{{ setVars.product }}. The word after the lastsetVars.promptResponse in Prompt Output.setVars (Set 3.4) holds eight fields: Account, repo, path, prompt, company, product, features andsector.GitHub (GitHub 1, File, Get) fetches the file at path plus prompt from the repo. Extract from File reads itSetPrompt keeps the text in a field called data.Check All Prompt Vars Present (Code) lists every placeholder in the text and the fields setVars lacks.If sends the run on when none is missing, and to Stop and Error, which names the missing ones, when any is.replace variables (Code) swaps each placeholder for its value. It matches the word after the last dot, so{{ setVars.product }} and {{ product }} both read product, and it leaves an unknown placeholder as it is.Set Completed Prompt keeps the filled text. AI Agent (1.7, prompt type Define) runs it on Ollama Chat Model, andPrompt Output returns the model's reply as promptResponse.path and prompt in setVars. Which repo: Account and repo.setVars, or add one and use its name in a placeholder.Ollama Chat Model. The agent has no tools connected, so it works as a plain prompt runner.Prompt Output.path and prompt, SEO/keyword_research.md, name a file of the original copy's repo. Write your ownNOTICE.md 678 B README.md 5 KB workflow.json 12 KB
alchaincyf · Skill
Turns a one-line request in your AI agent into a finished design: a launch animation, a clickable app prototype, an editable slide deck, an infographic or a se…
op7418 · Skill
Skill that makes single-file HTML slide decks, slide illustrations and platform covers in two visual styles, with a presenter mode for rehearsal. For speakers…
alirezarezvani · Skill
Adds 411 ready-made skills for Claude Code and other coding agents, grouped by role from engineering and product to marketing, finance and compliance. Installs…
block · Kit
Self-hostable workspace where people and AI agents share the same rooms, built on a Nostr relay that logs every action as a signed event. For teams that want t…
backnotprop · Kit
Opens your AI coding agent's plans, specs and code changes in a browser so you can annotate or comment on them and send the feedback straight back to the agent.
alibaba · Kit
Reviews Git changes with an AI agent that reads files and searches the codebase, then writes comments tied to exact lines. It suits developers who want automat…