Skip to content

Project Initialization

The /init slash command bootstraps a new project for BMO. It analyzes your codebase and writes the configured project context file. By default that file is AGENTS.md, but options.initialize_as can point BMO at another supported context filename.

/init

BMO will:

  1. Scan the project structure
  2. Identify build tools, test commands, and language
  3. Find key entry points and conventions
  4. Write the configured project context file to the project root
  • Project overview and purpose
  • Directory structure map
  • Build, test, and lint commands
  • Key files and their roles
  • Conventions the agent should follow (e.g. error handling style, naming)

Edit the generated file freely after /init. BMO reads it verbatim, so you can add:

  • Patterns to avoid
  • Domain knowledge the model wouldn’t infer from code alone
  • Contact info or ownership notes for modules
  • Links to internal docs or wikis

Place a SKILL.md anywhere in the tree to give context to a subtree. BMO reads SKILL.md files as it traverses into directories.

internal/
auth/
SKILL.md ← "This package handles JWT issuance and validation. Always validate expiry."
jwt.go
token.go

See Agent Skills for full documentation.

Run /init again after major structural changes. BMO will diff its new analysis against the existing context file and update it accordingly.

Use the dedicated rule-files inspect surfaces when you want to confirm which rule-file sources are active without mutating anything:

  • bmo config show-rule-files for a config-only projection
  • /rule-files inside the TUI for the session-aware local projection

These surfaces stay metadata-only. They tell you which configured paths, directory rules, and agent overrides are active, but they do not print the full file contents.