Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

check

Scans the project directory for content that does not belong to any module and reports it.

banco check

Exits with code 0 if no issues are found, or 1 if any are reported — making it suitable for use in scripts or CI pipelines.

What is checked

Extraneous top-level directories

Any directory at the project root that is not owned by a module (notes/, tasks/, bookmarks/, repos/) and is not misc/ or a hidden directory (e.g. .banco/, .git/) is flagged as extraneous.

extraneous directory: archive/

Extraneous paths within modules

Module directories follow the layout {module}/{provider}/{item}. The check enforces this at two levels.

Provider subdirectory — every direct subdirectory of a module root must match a configured provider name (or alias). local is always valid; any other provider you have added via banco provider add is also valid.

extraneous path: repos/banco/    ← "banco" is not a configured provider

Provider contents — inside each {module}/local/ directory the expected structure is:

ModuleFlagged as extraneous
notesNon-.md files anywhere under notes/local/
tasksFiles directly in tasks/local/; subdirectories other than backlog/, doing/, done/; non-.md files inside status subdirectories
bookmarksAny subdirectory under bookmarks/local/; non-.md files under bookmarks/local/
reposNon-directory entries under repos/local/
extraneous path: notes/local/scratch.txt
extraneous path: tasks/local/wip/
extraneous path: tasks/local/doing/notes.csv
extraneous path: repos/local/README.md

Provider configuration

Every provider entry in .banco/config.yml is validated against its known schema:

  • Unknown parameters — keys in the config: block that are not recognised by the provider are flagged.
  • Missing required parameters — keys that the provider requires but are absent from the config: block are flagged.
  • Unknown disabled modules — names in the disabled_modules: list that the provider does not implement are flagged.
  • Unknown provider — an entry whose name is not a known provider is flagged.
config: provider 'github': unknown parameter 'token'
config: provider 'jira' (alias 'work-jira'): missing required parameter 'agent_backend'
config: provider 'github': unknown module 'task' in disabled_modules
config: provider 'local': unknown parameter 'bogus_key'

The local provider takes no configuration parameters, so any key under its config: block is flagged as an unknown parameter. Its disabled_modules list is validated against the modules it implements (notes, tasks, bookmarks, repos).

Unmanaged content

If you need to keep files that are intentionally outside any module, place them in misc/banco check will never flag its contents. See misc.

Dashboard integration

The same check runs inside the interactive dashboard. The Status header shows a green ok or a red issue count at a glance. Press d to open the check panel, a compact overlay that lists the findings without leaving the dashboard.