Getting Started

Set up Datarim in under 5 minutes

D Documentation: Diátaxis Taxonomy

Every Datarim-managed repo and product site must organise its documentation per Diátaxis: four orthogonal categories — tutorials/ (learning), how-to/ (problem-solving), reference/ (lookup), explanation/ (understanding).

docs/
├── tutorials/        # learning-oriented
├── how-to/           # problem-solving (testing, deployment, gotchas)
├── reference/        # information-oriented (architecture, api, cli)
└── explanation/      # understanding-oriented (design, concepts)

Closed set: faq, glossary, troubleshooting, examples — mappable, never separate top-level types. Stack-agnostic — SSG/CMS choice per-project. Soft audit via /dr-optimize; hard CI gate deferred until ≥3 live consumers adopt the mandate.

1 Prerequisites

You need Claude Code installed and running.

# Install Claude Code (if not already)
curl -fsSL https://claude.ai/install.sh | bash
claude --version

macOS / Linux / WSL. For Windows: irm https://claude.ai/install.ps1 | iex (PowerShell). Documentation →

2 Install Datarim

git clone https://github.com/Arcanada-one/datarim.git
cd datarim
./install.sh --with-claude              # Claude Code (symlink, default)
./install.sh --with-codex               # Codex CLI (multi-runtime, v2.0+)
./install.sh --with-claude --with-codex # both runtimes at once

The installer creates symlinks ~/.claude/{skills,agents,commands,templates}code/datarim/<scope>/. Runtime IS the repo: editing any file under ~/.claude/ shows up immediately as git diff — no drift, no manual sync.

Symlink (default)
macOS / Linux / WSL. Edit-in-runtime is edit-in-repo. Recommended.
./install.sh --copy
Real-copy snapshot. Windows / FAT filesystems. Auto-fallback on MSYSTEM/MINGW.

Existing copy-mode install? The installer detects it and offers conversion (3 options: convert / keep / abort) with auto-backup.

Personal additions / overrides go to gitignored overlay ~/.claude/local/{skills,agents,commands,templates}/. Local wins on name conflict.

3 Updating Datarim

Already have Datarim installed? Update to the latest version:

cd /path/to/datarim
./update.sh                      # topology-aware: symlink → git pull, copy → install --copy --force --yes
Symlink mode
git pull origin main — runtime updates atomically with the repo. No re-install needed.
Copy mode
install.sh --copy --force --yes — re-sync runtime with auto-backup in ~/.claude/backups/.

4 Your First Task

Navigate to any project and start Claude Code:

cd /path/to/your/project
claude

# Inside Claude Code:
/dr-init Add dark mode toggle to settings page

Datarim analyzes your request, determines complexity (L1-L4), and creates task tracking in datarim/.

Since v2.7.0: Step 2.5b adds a soft advisory when your description overlaps in topic with an item already pending in the backlog, so you do not spawn a second ID for the same work. Non-blocking — you decide duplicate / refine-scope / orthogonal before continuing.

5 Follow the Pipeline

Not every task needs all 8 stages. Datarim routes by complexity:

L1
Simple fix
init → do → archive
L2
Standard feature
init → prd (with lite research) → plan → do → qa → archive
L3
Complex feature
init → prd (with full research) → plan → design → do → qa → compliance → archive
L4
Major project
All 8 stages + consilium + strategist review

6 Essential Commands

/dr-help List all commands
/dr-init Start a new task
/dr-prd Requirements + context research
/dr-plan Detailed implementation plan
/dr-do Implement planned changes (TDD)
/dr-qa Run quality checks
/dr-archive Reflect, archive, update backlog
/dr-write Create content
/dr-publish Publish to platforms
/dr-status Current task progress

7 Project Structure

After /dr-init, your project gets:

your-project/
├── datarim/                 # workflow state (add to .gitignore)
│   ├── tasks.md             # active tasks
│   ├── backlog.md           # pending items
│   ├── activeContext.md     # current focus
│   ├── progress.md          # status overview
│   ├── insights/            # research findings
│   └── ...                  # prd/, creative/, reflection/
└── documentation/
    └── archive/             # completed tasks (commit this)
        ├── web/
        ├── infrastructure/
        └── ...

datarim/ is your local workflow — add to .gitignore. documentation/archive/ is project history — commit to git.

Init-task file and Q&A log (v2.9.0): /dr-init stores your original prompt in datarim/tasks/{ID}-init-task.md verbatim. Every later clarification — the agent's question and your answer — is auto-appended to the file's Append-log as a structured «Q&A by /dr-<stage>» block. If you do not answer, the agent decides autonomously by best practices and records a rationale of at least 50 characters; the review stage verifies every autonomous decision against the implementation.

8 Plugins (v1.23.0+)

Extend Datarim with opt-in plugins via /dr-plugin. Each plugin is a directory with plugin.yaml + {skills,agents,commands,templates}/ subdirs. Enabling creates symlinks under ~/.claude/<cat>/<plugin-id>/.

/dr-plugin list                              # active set
/dr-plugin enable /path/to/my-plugin     # enable a local plugin
/dr-plugin disable my-plugin              # disable
/dr-plugin sync                              # reconcile runtime ↔ manifest
/dr-plugin doctor [--fix]                    # 9 health checks

Active-set manifest: datarim/enabled-plugins.md. Pre-mutation snapshot/rollback on every enable. Full reference — command page →

9 Network Exposure Baseline (v1.24.0+)

Secure-by-default contract for network bind targets: docker-compose ports, redis.conf bind, postgresql.conf listen_addresses, systemd .socket. Public-by-default = breach-by-default; the new network-exposure-baseline.md skill formalises the tier model with TTL-bounded waivers.

Tier 0
unix socket / no port published — allowed without justification.
Tier 1
loopback (127.0.0.1, ::1) — allowed; standard for dev compose.
Tier 2
Tailscale CGNAT 100.64.0.0/10allowed (mesh-only by definition).
Tier 3
0.0.0.0, [::], public IPs — require inline x-exposure-justification + x-exposure-expires (≤90 days).

Local pre-commit check:

dev-tools/network-exposure-check.sh \
  --compose docker-compose.yml \
  --redis-conf redis.conf \
  --postgres-conf postgresql.conf
# exit 0 — clean; exit 1 — violation

Reusable CI workflow in .github/workflows/ci.yml:

jobs:
  network-exposure:
    uses: Arcanada-one/datarim/.github/workflows/network-exposure-lint.yml@main
    with:
      compose-paths: 'docker-compose.yml,docker-compose.prod.yml'

Pipeline commands (/dr-prd, /dr-plan, /dr-do, /dr-archive) auto-load the skill on network-surface changes. Tiered gate: P0 / security / infrastructure / framework-hardening tasks → hard_block; otherwise → advisory_warn with operator override.

10 Autonomous Agent Operating Rules (v2.6.0+)

When operator requirements are incomplete, complex, or ambiguous, the agent must not stall and escalate unnecessarily. Eight canonical rules (FB-1..FB-8) define autonomous behaviour under Supreme Directive Laws 1-5. The mandate lives in the consumer's ecosystem CLAUDE.md (canonical text + audit tagging); Datarim ships only the machine-readable contract block.

FB-1
Research available options.
FB-2
Compare against best practices, security, maintainability.
FB-3
Council by professional roles (architect / dev / DevOps / security / QA / PO).
FB-4
Pick an option and write the reason to the audit log.
FB-5
Execute safely-doable parts without operator involvement.
FB-6
Make decisions reversible under uncertainty.
FB-7
Allow adjustment, rollback, or re-do after testing.
FB-8
Escalate only genuinely blocking questions.

Machine-readable policy block:

plugins/dr-orchestrate/rules/fb-rules.yaml
# rules: 8 × {rule_id, enforcement_layer, tier, default_action,
#               reversibility_required, audit_required, conflicts_with_law}
# hard_gated_actions: [prod_deploy, secret_rotation, irreversible_db_op,
#                      public_communication, finance_action, legal_action,
#                      force_push_main, git_history_delete, multi_user_visible_action]

Hierarchy: Supreme Directive (Laws 1-5) > Autonomous Agent Operating Rules > AAL Mandate > project-specific mandates. hard_gated_actions NEVER auto-execute regardless of FB-5. Loader: scripts/rules_loader.sh § load_fb_policy() / load_fb_hard_gates().