# https://taskfile.dev version: "3" includes: base: ./.scripts/base/Taskfile.yml cli: ./.scripts/cli/Taskfile.yml tasks: default: cmds: - task --list-all silent: true build: desc: Compile TypeScript source to dist/ cmds: - task: cli:build silent: true run: desc: | Run any drawio-tools action against a .drawio file or Diagram IR model (see `task cli:run` for the action list). Usage: task run -- --file="/path/to/diagram.drawio" --action= [--page ] [--output ] cmds: - task: cli:run vars: CLI_ARGS: "{{ .CLI_ARGS }}" silent: true generate: desc: | Build a native .drawio file from a YAML Diagram IR. Usage: task generate -- --file="spec.yaml" --output="diagram.drawio" cmds: - task: cli:run vars: CLI_ARGS: "--action=build {{ .CLI_ARGS }}" silent: true import: desc: Loss-aware Draw.io import to Diagram IR v2; requires --file and --output. cmds: - task: cli:run vars: CLI_ARGS: "--action=import {{ .CLI_ARGS }}" silent: true edit: desc: Apply an atomic stable-ID edit batch; requires --file and --spec. cmds: - task: cli:run vars: CLI_ARGS: "--action=edit {{ .CLI_ARGS }}" silent: true views: desc: Project linked audience views to a multi-page Draw.io file. cmds: - task: cli:run vars: CLI_ARGS: "--action=views {{ .CLI_ARGS }}" silent: true query: desc: | Filter a Diagram IR v2 model by kind/property, or find a directed path. Usage: task query -- --file="model.yaml" --kind=service | --property=k=v | --from= --to= cmds: - task: cli:run vars: CLI_ARGS: "--action=query {{ .CLI_ARGS }}" silent: true test: desc: | Run built-in architecture policy rules against a Diagram IR v2 model. Usage: task test -- --file="model.yaml" [--spec="policy-rules.yaml"] [--strict] cmds: - task: cli:run vars: CLI_ARGS: "--action=test {{ .CLI_ARGS }}" silent: true what-if: desc: | Calculate outgoing failure impact from one node; requires --file and --fail. Usage: task what-if -- --file="model.yaml" --fail= cmds: - task: cli:run vars: CLI_ARGS: "--action=what-if {{ .CLI_ARGS }}" silent: true sync: desc: | Three-way stable-ID synchronization; requires --base, --file, and --spec. Usage: task sync -- --base="before.yaml" --file="edited.yaml" --spec="after.yaml" --output="synced.drawio" [--prune] [--dry-run] cmds: - task: cli:run vars: CLI_ARGS: "--action=sync {{ .CLI_ARGS }}" silent: true doctor: desc: | Report optional local backend availability without launching anything; no --file needed. Usage: task doctor cmds: - task: cli:run vars: CLI_ARGS: "--action=doctor {{ .CLI_ARGS }}" silent: true story: desc: Publish a self-contained accessible offline architecture story. cmds: - task: cli:run vars: CLI_ARGS: "--action=story {{ .CLI_ARGS }}" silent: true validate: desc: | Validate a .drawio file (XML well-formedness + required structure). Usage: task validate -- --file="/path/to/diagram.drawio" cmds: - task: cli:validate vars: CLI_ARGS: "{{ .CLI_ARGS }}" silent: true