CLI Command Reference
Relevant source files
The following files were used as context for generating this wiki page:
Introduction
The Delano CLI (delano) is the primary interface for managing file-backed delivery contracts. It serves as an agent-agnostic runtime tool designed to bootstrap repositories, expose delivery state, and maintain verifiable synchronization between local contracts and external platforms like GitHub or Linear. The CLI treats the .project/ directory as the source of truth for all project management activities.
The CLI architecture consists of native JavaScript commands for state manipulation and a series of wrapper commands that delegate execution to underlying shell scripts located in .agents/scripts/pm/. This hybrid approach allows the CLI to provide a high-level UX while leveraging robust, existing bash-based automation for complex validation and status reporting.
Sources: README.md:1-15, src/cli/index.js:20-55
Command Architecture and Dispatch
The CLI entry point resolves user input into specific command objects. It supports standard command patterns as well as shorthands for installation.
The logic above describes the resolveInvocation function which identifies whether a command is a help request, a version request, or a functional command.
Sources: src/cli/index.js:80-120, test/cli.test.js:335-341
Command Types
The CLI categorizes operations into three main types:
| Type | Description | Commands |
|---|---|---|
| System | Core lifecycle and environment tools | install, onboarding, viewer |
| State | Native JS manipulation of .project files | project, workstream, task, update |
| Wrappers | Shims for .agents/scripts/pm/ bash scripts | init, validate, status, next, research |
Sources: src/cli/index.js:20-78, README.md:95-125
Core Command Reference
delano install
Bootstraps the Delano runtime into a target repository. It is conflict-first, meaning it computes a full install plan and aborts if approved paths already exist unless --force is used.
Selected Options:
--target <path>: Destination repository (defaults to current directory).--force: Overwrites existing allowlisted files.--only <categories>: Narrow install to specific categories (e.g.,skills,viewer).--no-project-state: Excludes.project/context,.project/projects, and.project/registry.
Sources: src/cli/lib/install.js:148-245, README.md:188-210
delano project, workstream, & task
These commands manage the hierarchy of delivery contracts. The CLI performs "rollups," where updating a child (task) automatically influences the status of the parent (workstream/project).
Key Data Transitions:
- Task
close: Changes status todone. If the task had dependents blocked by "dependency," the CLI automatically transitions those dependents toready. - Task
start: Promotes the parent Workstream toactiveand the Project Spec/Plan toactive.
Sources: src/cli/lib/project-state.js:347-450, test/cli.test.js:140-198
delano onboarding
Analyzes AGENTS.md using a rubric to identify gaps in first-turn workflows and safety boundaries. It is "approval-first," requiring the --approve-agents-analysis flag before performing any analysis.
Sources: src/cli/index.js:39-43, test/cli.test.js:352-363
delano viewer
Launches a read-only local Node.js server (default port 3977) to visualize the .project/ directory. It indexes context, templates, and project artifacts to provide a "Local Dossier" UI experience.
Sources: src/cli/index.js:49-53, README.md:175-182
Wrapper Command Integration
Wrapper commands use createWrapperCommand to invoke scripts inside .agents/scripts/pm/.
// Example: The 'status' command executes status.sh
const wrapperCommands = {
status: createWrapperCommand("status"),
validate: createWrapperCommand("validate"),
next: createWrapperCommand("next")
};
Sources: src/cli/index.js:20-37
Machine-Readable Output
Several commands (e.g., import-spec-kit, research) support a --json flag. When used, the CLI suppresses human-readable summaries and outputs a single JSON object containing:
ok: Boolean success indicator.command: The executed command name.files: Array of created/modified file paths.validation: Result of the post-creation validation gate.
Sources: src/cli/index.js:230-265, src/cli/commands/state.js:485-500
Project State Management Logic
The CLI handles complex frontmatter and section updates within Markdown files.
| Component | Responsibility | Relevant Function |
|---|---|---|
| Frontmatter | Manages key-value pairs at the top of MD files | updateFrontmatterText |
| Evidence Log | Appends timestamped entries to the "Evidence Log" section | appendEvidence |
| Status Transitions | Validates and applies state changes across hierarchy | applyTaskAction |
| Template Engine | Renders new artifacts from .project/templates/ | renderTemplate |
Sources: src/cli/lib/project-state.js:127-185, src/cli/lib/project-state.js:247-310
Conclusion
The Delano CLI provides a structured, file-first approach to project management by enforcing a strict status model and evidence discipline. Through its combination of native project-state manipulation and extensible shell wrappers, it ensures that project contracts remain the single source of truth for both human operators and automated agents.
Sources: README.md:10-25, AGENTS.md:1-15