Project: vidveil Role: Efficient loader for AI.md
Purpose:
- This file is a short loader for the most important rules
AI.mdis the full source of truth (READ-ONLY),IDEA.mdis the project definition- For complete details, read the referenced PARTs in
AI.md
- Default to continuing work - do not stop just to ask whether you should continue
- Never guess - if the answer cannot be determined from
AI.md,IDEA.md, the codebase, or repo state and the missing information materially changes behavior, scope, or safety, ASK the user - Do NOT ask for permission to keep going - continue until the task is complete, blocked, or the user asks to pause
- Question mark = question - when the user ends with
?, answer/clarify, don't execute - Use AskUserQuestion wizard - one question at a time, with options plus "Other"
Ask only when at least one of these is true:
- A required business/product decision is missing
- Two or more reasonable implementations would produce materially different behavior
- The action is destructive, irreversible, or impacts production/user data
- The spec explicitly says to ask or confirm
- The user explicitly requested a plan, pause, or checkpoint before execution
- Have I read the relevant PART in AI.md? (If no → read it)
- Does this follow the spec EXACTLY? (If unsure → check spec)
- Am I guessing or do I KNOW from the spec? (If guessing → read spec)
- Would this pass the compliance checklist? (AI.md FINAL section)
WHEN IN DOUBT: READ THE SPEC. DO NOT GUESS.
- server =
vidveil(main binary, runs as service) - client =
vidveil-cli(REQUIRED companion, CLI/TUI/GUI)
{project_name}=vidveil·{project_org}=apimgr{internal_name}=vidveil(frozen forever) ·{internal_org}=apimgr{official_site}=https://x.scour.li·{api_version}=v1
- Use bcrypt for config/backup passwords → Use Argon2id
- Put Dockerfile in root →
docker/Dockerfile - Use CGO → CGO_ENABLED=0 always
- Hardcode dev values → Detect at runtime
- Use external cron → Internal scheduler (PART 18)
- Store config/backup passwords plaintext → Argon2id (API tokens use SHA-256)
- Create premium tiers → All features free, no paywalls
- Use Makefile in CI/CD → Explicit commands only
- Guess values a command can produce → Run the command (
date,git rev-parse --short=7 HEAD,uname -m, …); otherwise read spec or ask - Skip platforms → Build all 8 (linux/darwin/windows/freebsd × amd64/arm64)
- Client-side rendering (React/Vue) → Server-side Go templates
- Add JavaScript for anything HTML5+CSS already does → JS is a LAST RESORT (PART 16)
- Let long strings break mobile → Use word-break CSS
- Skip validation → Server validates EVERYTHING
- Implement without reading spec → Read relevant PART first
- Modify AI.md → READ-ONLY SPEC. Project changes go in
IDEA.md - Edit
## Project variablesin IDEA.md without confirming with the user - Read an image larger than 1000×1000 directly → resize first (
magick→convert→gm convert→vipsthumbnail→sips→ffmpeg) - Use a non-conforming IDEA.md without migration → it must have
## Project description,## Project variables,## Business logic
- Read AI.md before implementing ANY feature
- Server-side processing (server does the work, client displays)
- Mobile-first responsive CSS
- All features work without JavaScript
- Tor hidden service support (auto-enabled if Tor found)
- Built-in scheduler, GeoIP, metrics, email, backup, update
- All settings configurable via API and config file
- Client binary for ALL projects
- Commit via
gitcommit --dir {project_dir} allwith a fresh accurate.git/COMMIT_MESS; subagents never commit
- Config:
{config_dir}/server.yml - Data:
{data_dir}/ - Logs:
{log_dir}/ - Source:
src/ - Docker:
docker/
- AI behavior:
.claude/rules/ai-rules.md(PART 0, 1) - Project structure:
.claude/rules/project-rules.md(PART 2, 3, 4) - Frontend/WebUI:
.claude/rules/frontend-rules.md(PART 16) - All 13 rule files:
.claude/rules/ - Full spec:
AI.md(~49k lines) ← SOURCE OF TRUTH
[AI updates this section as work progresses]
- Last read AI.md: 2026-09-03
- Current task: compliance audit against AI.md PART 0, PART 1
- Relevant PARTs: 0, 1