Developers
Developers
Describes Xaden v0.2.3, released 2026-10-13.
Create your project
xaden new my-app
cd my-app
xaden new my-app: creates the foldermy-appin the current directory, with its own git repository and hookscd my-app: moves your terminal into the new project
To create the project somewhere else, add the folder: xaden new my-app ~/code/x.
Only files tracked by git in Xaden’s template folder are copied (including uncommitted edits to them);
untracked or ignored files such as .env, node_modules/ or inbox/ content never are.
A failed run removes the half-created project.
Prefer GitHub’s “Use this template” button? Then clone your copy and run its scripts/install.sh; xaden new my-app then works the same way. Never develop your project inside the
scaffold: everything a project gets comes from Xaden’s template folder.
Bring an existing project
Xaden has no one-step import for an existing project yet. The reliable way is to create a fresh Xaden
project and merge your project’s git history into it. Your files and history stay, and Xaden adds its
rules, checks and documents around them. The example assumes your project is ~/code/shop.
1. Create the Xaden project next to it
cd ~/code
xaden new shop-xaden
cd shop-xaden
cd ~/code: goes to the folder that holds your project.xaden new shop-xaden: creates the new projectshop-xadenthere, with its own git repository and hooks.cd shop-xaden: moves your terminal into it.
2. Merge your project into it
git remote add old ../shop
git fetch old
git merge old/main --allow-unrelated-histories
git remote add old ../shop: registers your project’s repository under the nameold.git fetch old: copies its history over without touching any file.git merge old/main --allow-unrelated-histories: joins the two histories. The flag is needed because they have no common start. Replacemainwith your branch name;git -C ../shop branch --show-currentprints it.
3. Resolve the conflicts
Git stops at files that exist in both projects, usually README.md and .gitignore. Open each one and
keep what you need: your own text for the README, the lines of both for .gitignore. Then finish the
merge:
git add README.md .gitignore
git commit --no-edit
git remote remove old
git add README.md .gitignore: marks the two files as resolved. Add every other file Git listed as conflicting in the same way.git commit --no-edit: completes the merge with Git’s default message.git remote remove old: removes the link to your old project.
4. Check and teach the assistant
xaden check
xaden check: runs all checks on the merged project. Existing code may trigger findings. Fix them, or record the current violations in the tool’s baseline file so that only new code is held to the rule.
Then start your assistant and run /kickoff. Describe what the project already does instead of a new
idea. It asks questions and writes the requirements, the threat model and the architecture notes, and
you approve them. Review what it writes, because it describes code you know better than it does.
Kickoff
- Claude Code: start
claudeinmy-app, run/kickoff <your idea>. - Other tools: open the folder; ask the tool to follow
prompts/kickoff.md. - Chat without file access:
xaden pack kickoff, pastecontext-pack.md.
The assistant’s first reply must start with CONTEXT CHECK <number>. Compare it with your own
scripts/context-status.sh: a mismatch means it started from stale or missing files. A match
is a consistency aid only; it does not prove the rules were read or followed, so still review its work.
You answer its questions, approve the requirements, and choose the stack. It then builds a minimal runnable skeleton and fills installation details in the guides.
Build features
/feature <what users can do afterwards> (or prompts/feature.md). The assistant links the work
to a requirement, plans, works test-first, runs xaden check, runs a security review when
input/auth/data/network are touched, updates guides and changelog, and commits with
Refs: REQ-nnn. Changed your mind? Say it, or run /requirements.
Also available: /bugfix, /refactor, /review, /security, /docs.
Release
/release proposes a SemVer bump; you confirm; xaden release checks everything, refuses
while the guides are incomplete, stamps versions, and tags locally. Push when you want:
git push --follow-tags.
Join an existing project
git clone <project-url> && cd <project>
xaden setup
xaden setup: git hooks are not cloned; this turns them on
CI re-runs the static analysis and commit-message checks, so skipped hooks are caught there.
Using the scaffold with other LLMs
The rules live in plain Markdown (AGENTS.md), so any tool works. Tool-specific files are
thin pointers: CLAUDE.md, .github/copilot-instructions.md, .clinerules,
.continue/rules/project.md, .aider.conf.yml.
ChatGPT / web chat (no file access)
xaden pack feature
xaden pack feature: rules, security, requirements, changes, prompt → context-pack.md
Paste it as the first message, then your task. Paste changed files back for review; apply
code manually, then run xaden check yourself and paste failures back.
Repeat the pack whenever requirements change.
Local models
Small models have small context windows: keep AGENTS.md short, use one prompt at a time,
and edit few files per request. For a pasted pack, use the brief form with only the
requirements the task touches:
xaden pack --brief <requirement> feature
xaden pack --brief <requirement> feature: rules, security, personas, index, the named requirement, prompt
It leaves out docs/clean-code.md, the architecture, the threat model and all other requirement
files, and says so in its header. The script prints the pack’s estimated size in tokens and warns
above about 12,000.
Ollama + Aider
ollama pull qwen2.5-coder:14b
export OLLAMA_API_BASE=http://127.0.0.1:11434
aider --model ollama_chat/qwen2.5-coder:14b
ollama pull qwen2.5-coder:14b: any coder model your hardware handles Ollama’s default context is small; raise it (e.g.num_ctx 16384) in a Modelfile or via the Aider model settings, otherwiseAGENTS.mdis silently truncated. Aider readsAGENTS.mdand the requirements through.aider.conf.yml.
LM Studio
Start the local server (OpenAI-compatible, default http://localhost:1234/v1), load a coder
model with a context length ≥ 16k, then point Aider/Cline/Continue at it as an
“OpenAI-compatible” provider with any dummy API key.
Cline / Continue (VS Code)
Provider “Ollama” or “OpenAI compatible”. Both pick up the rules from .clinerules and
.continue/rules/project.md, which point to AGENTS.md.
Limits to expect
Weaker models skip steps. Counter: ask for the plan first, run xaden check yourself,
and never merge without a green check. Security review quality drops with model size —
re-run prompts/security-review.md with a stronger model before releases.
Platforms
Linux and macOS are supported. Scripts are bash and use only POSIX tools. On Windows use WSL (recommended) or Git Bash; native PowerShell is not supported.