Getting Started

Install DinoStack and ship your first focused session

Install in two steps

1. Open a terminal where you keep your repos and start Claude Code:

cd ~        # or ~/code, ~/projects, etc.
claude

2. Paste this into Claude Code:

Clone git@github.com:Space-Dinosaurs/DinoStack.git and run .claude/install.sh

The agent clones, installs, and walks you through optional tool setup - idempotent, safe to re-run.

Install in two steps (cont.)

Claude Code is the primary adapter. The installer at .claude/install.sh is idempotent and safe to re-run.

Other adapters use the same pattern - each tool's native format:

Gemini CLI: bash .gemini/install.sh
Cursor: .cursor/install.sh
Codex CLI: .codex/install.sh
Kimi: .kimi/install.sh
OpenCode: .opencode/install.sh

Pick an activation mode

The installer asks one question: how should the methodology activate across your projects?

  • opt-out (default) - active everywhere. Individual projects disable it by adding agentic-engineering: opt-out to their root AGENTS.md. Best for most users.
  • opt-in - dormant until a project's AGENTS.md contains agentic-engineering: opt-in. Best for trying the protocol in one project before rolling out everywhere.

Press Enter to accept the default, or pass --mode=opt-in / --mode=opt-out to the installer. The choice is saved to ~/.claude/agentic-engineering.json and shared across all adapters - re-run any installer with a --mode flag to change it later.

On first activation (TTY only) the preflight prints a one-line notice naming the resolved mode, marker, and profile, and points you at /ds-status (resolver dump) and /ds-disable (explicit opt-out; refuses on an existing opt-in without --force). The notice is gated on a per-project sentinel at .agentic/.activated; deleting it re-arms the notice only. AGENTIC_QUIET=1 suppresses both.

Always run claude from the project directory

The current working directory is the project identity. Claude Code keys every bit of persistence - memory, AGENTS.md, session history - to the cwd it was started from.

cd ~/code/myproject
claude

That's the whole mechanism. Same project dir = same memory, automatically.

Optional ergonomic tip: add -n myproject to label the session. It shows up in the /resume picker and your terminal title - handy for finding sessions later, but it doesn't affect memory.

First move in a real repo - /ds-init-project

From inside the repo, start Claude Code and run /ds-init-project:

cd ~/code/myproject
claude
/ds-init-project

A one-time, per-repo setup. Bootstraps project memory, captures conventions, and seeds the risk defaults so the protocol knows what "normal" looks like here.

Do this once per repo, before you start delegating real work. Skip it and the agent runs blind.

The single most important habit - focused sessions

One session = one goal

  • State the goal clearly at the start
  • Resist scope creep
  • If new work appears, note it, save it for next session
  • Short, explicit, reviewable

Why it matters

  • Context stays narrow, output stays sharp
  • Reviews stay scoped
  • Memory captures one clean learning per session
  • You can actually ship
Focused sessions are the single biggest force multiplier. The protocol assumes you'll keep context narrow - fight the urge to pile on.

Close every session with /ds-wrap

When the goal is done - or clearly won't be done today - run /ds-wrap. It does the session-close ritual for non-ticket sessions:

  • Produces a structured .agentic/context.md with decisions, next steps, and gotchas
  • Extracts stable facts and adds them to MEMORY.md
  • Updates AGENTS.md with conventions learned this session
  • Leaves the next session starting from richer context than this one
/ds-wrap is not optional ceremony. Skipping it is how memory drifts, context bloats, and sessions become unshippable.
After /ds-wrap, close the session cleanly. In the terminal CLI, use /exit rather than ctrl+c. In the desktop or web app, /exit is not available - just close the window or tab normally.

Your first practice loop

One-time setup: in ~/.claude/settings.json set defaultMode: "bypassPermissions" with a small denylist of destructive commands. See Hands-off Configuration in the docs.

  1. Pick a small, real task in a repo where you've run /ds-init-project
  2. Start a fresh claude session in that repo
  3. State the goal in one sentence - resist adding "and also..."
  4. Let the agent classify risk and run the loop (no commands needed)
  5. Read the Skeptic review, decide: ship, revise, or drop
  6. Run /ds-wrap - even if the answer was "drop it"
  7. Repeat tomorrow with a new small task
First few sessions feel slower than "just doing it." That's the trade - raw speed for reviewable, shippable, memorable work.

Small sessions. Clear goals. /ds-wrap every time.

That's the whole practice.

github.com/Space-Dinosaurs/DinoStack