Skip to content
XADEN

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 folder my-app in the current directory, with its own git repository and hooks
  • cd 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 project shop-xaden there, 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 name old.
  • 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. Replace main with your branch name; git -C ../shop branch --show-current prints 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 claude in my-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, paste context-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, otherwise AGENTS.md is silently truncated. Aider reads AGENTS.md and 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.