scout_cli
The command-line interface for the Scout Application Capability Intelligence Platform.
Reads scout.manifest.json — the capability graph generated by scout_builder — and
provides commands for inspection, validation, and CI integration. No Dart analyzer
dependency; works with a pre-built manifest.
Installation
dart pub global activate scout_cli
Or run directly from your project:
dart run scout_cli:scout <command>
Commands
scout init
Bootstrap Scout in a Flutter project. Auto-detects your router file and app name from
pubspec.yaml, creates .scout/config.yaml, and installs a git pre-commit hook that
keeps the manifest in sync.
scout init
scout init --router-file lib/app_router.dart --router-class AppRouter
Output:
Scout initialized in school_mgmt_app
Detected: Flutter project
Router: lib/app_router.dart (AppRouter)
Created: .scout/config.yaml
Installed: .git/hooks/pre-commit (scout scan trigger)
Next steps:
1. dart pub add scout_annotations
2. Add scout_builder to build.yaml
3. dart run build_runner build
Paste into CLAUDE.md:
┌─────────────────────────────────────────────────────────────┐
│ This app has capabilities mapped in .scout/ │
│ Run scout_mcp to enable MCP integration for AI assistants. │
└─────────────────────────────────────────────────────────────┘
scout scan
Regenerate scout.manifest.json by running build_runner. Use --validate to
immediately validate the output (suitable for CI).
scout scan
scout scan --validate # regenerate then validate
scout scan --strict # fail CI on any validation error
scout validate
Validate the manifest for completeness and internal consistency. Exits with code 1 if any failures are found — use as a CI gate.
scout validate
scout validate --manifest path/to/scout.manifest.json
Checks performed:
| Check | Level |
|---|---|
| All capability IDs are valid snake_case | FAIL |
No route_id references a non-existent route |
FAIL |
| All authenticated routes have a linked capability | FAIL |
Capabilities have a description field |
WARN |
| Inferred capabilities with confidence < 0.6 | WARN |
Example output:
PASS 3 capabilities have valid IDs
FAIL 1 authenticated route(s) have no linked capability:
/admin/audit-log [admin]
WARN 1 capability(s) missing description field
Result: FAIL (1 failure, 1 warning)
scout graph
Inspect the capability graph interactively.
scout graph show # all capabilities, grouped by category
scout graph show --filter academic # filter by category
scout graph show --access public # filter by access level
scout graph tree # ASCII route tree
scout graph stats # summary statistics
Example scout graph show:
ACADEMIC
● view_attendance [auth] View Attendance
Shows subject-wise attendance summary for the selected semester.
● mark_attendance [auth] Mark Attendance
Record attendance for a class session.
○ download_report [auth] Download Report
FEES
● pay_fees_online [auth] Pay Fees Online
Legend: ● = annotated (Tier 2), ○ = inferred (Tier 1)
CI integration
# .github/workflows/scout.yml
- name: Regenerate capability manifest
run: dart run build_runner build --delete-conflicting-outputs
- name: Validate capability graph
run: scout validate
# exits 1 on failures → blocks merge
For breaking-change detection (coming in V1):
- name: Check for breaking capability changes
run: scout diff --fail-on-breaking
Global options
scout --manifest path/to/scout.manifest.json <command>
scout --help
scout version
Part of Scout
scout_annotations ← @Capability, @Workflow, @Permission annotations
↓
scout_builder ← build_runner plugin, produces scout.manifest.json
↓
scout_cli ← this package
scout_mcp ← MCP server for Claude Code / Cursor / Windsurf
See github.com/wirecept/scout for the full platform.
License
MIT
Libraries
- scout_cli
- Scout CLI library — manifest reading and command logic.