4.0 KiB
4.0 KiB
How to Add or Update Prompt Files
This document is for AIs and scripts that need to upload new prompt/rule files to this repository programmatically via the Gitea API.
Authentication
All write operations require the API token. The token should be provided to you by the server owner (Richard Brandon) at session start.
Gitea URL: https://g.pozi.co.za
LAN URL: http://192.168.0.126:3000
API token: (provided by owner — do not hardcode here)
Repo: gadmin/ai-prompts
Branch: main
Folder / Category Structure
Files MUST be placed inside an appropriate project folder:
| Folder | Use for |
|---|---|
gitea-server/ |
Prompts about this git server setup and management |
multiplan/ |
Multiplan PHP ERP project prompts and context |
dotfiles/ |
Desktop/laptop dotfiles and config management |
arduino/ |
Arduino sketches and automation scripts |
general/ |
Generic AI rules not tied to a specific project |
To add a new project category, simply use a new folder name — it will be created automatically when you upload the first file into it.
File Naming Rules
- Use lowercase, hyphen-separated names
- Use
.mdfor prompt/context/rule documents - Use descriptive prefixes:
context-— background info to give AI at session startsetup-— instructions for setting something uprules-— constraints or rules AI must followprompt-— a ready-to-use prompt for a specific taskbriefing-— status briefing for handover between AI sessions
Upload a New File via API
Check if file already exists (200 = exists, 404 = new)
curl -o /dev/null -w "%{http_code}" \
https://g.pozi.co.za/api/v1/repos/gadmin/ai-prompts/contents/FOLDER/FILENAME.md \
-H "Authorization: token YOUR_TOKEN"
Create a new file
# Encode your content as base64 first:
CONTENT=$(base64 -w 0 < your-file.md)
curl -X POST https://g.pozi.co.za/api/v1/repos/gadmin/ai-prompts/contents/FOLDER/FILENAME.md \
-H "Authorization: token YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d "{
\"message\": \"add: FILENAME — brief description\",
\"content\": \"${CONTENT}\",
\"branch\": \"main\"
}"
Update an existing file (requires current file SHA)
# Step 1 — get the current file SHA:
SHA=$(curl -s https://g.pozi.co.za/api/v1/repos/gadmin/ai-prompts/contents/FOLDER/FILENAME.md \
-H "Authorization: token YOUR_TOKEN" | python3 -c "import sys,json; print(json.load(sys.stdin)['sha'])")
# Step 2 — encode new content:
CONTENT=$(base64 -w 0 < your-updated-file.md)
# Step 3 — push the update:
curl -X PUT https://g.pozi.co.za/api/v1/repos/gadmin/ai-prompts/contents/FOLDER/FILENAME.md \
-H "Authorization: token YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d "{
\"message\": \"update: FILENAME — what changed\",
\"content\": \"${CONTENT}\",
\"sha\": \"${SHA}\",
\"branch\": \"main\"
}"
Delete a file (requires SHA)
SHA=$(curl -s https://g.pozi.co.za/api/v1/repos/gadmin/ai-prompts/contents/FOLDER/FILENAME.md \
-H "Authorization: token YOUR_TOKEN" | python3 -c "import sys,json; print(json.load(sys.stdin)['sha'])")
curl -X DELETE https://g.pozi.co.za/api/v1/repos/gadmin/ai-prompts/contents/FOLDER/FILENAME.md \
-H "Authorization: token YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d "{\"message\": \"remove: FILENAME — reason\", \"sha\": \"${SHA}\", \"branch\": \"main\"}"
Commit Message Convention
add: filename — short description of what it is
update: filename — what changed and why
remove: filename — why it was removed
fix: filename — correction made
Reading Files (no auth needed — repo is public)
# Raw file content:
curl https://g.pozi.co.za/gadmin/ai-prompts/raw/branch/main/FOLDER/FILENAME.md
# File metadata (size, sha, download url):
curl https://g.pozi.co.za/api/v1/repos/gadmin/ai-prompts/contents/FOLDER/FILENAME.md
# List all files in a folder:
curl https://g.pozi.co.za/api/v1/repos/gadmin/ai-prompts/contents/FOLDER/