version: '3'

# tasks/triage-smoketest.yml -- N6 (#1146) `task triage:smoketest` end-to-end
# synthetic test of the cache-as-operator-working-set surface.
#
# Wired into the parent Taskfile.yml via the `includes:` block under namespace
# key `triage-smoketest`. The inner task `smoketest` is reachable as
# `task triage-smoketest:smoketest`; the parent Taskfile exposes the
# documented `task triage:smoketest` alias.
#
# Per `conventions/task-caching.md` (#574): NO `sources:` / `generates:`
# declarations because user-facing flags (`--verbose`, `--keep-tempdir`,
# `--cache-only`, `--fixture`) are forwarded via {{.CLI_ARGS}} and
# go-task's incremental-build cache layer would silently swallow them.
#
# Handler: packages/cli/src/triage-smoketest.ts via engine:invoke (packages/cli/dist).
# Help registry: packages/core/src/triage/help/registry-data.ts (edit in place).
# Fixture: tests/fixtures/triage_smoketest/
# Pattern reference:  tasks/triage-summary.yml (D2 / #1122).

vars:
  DEFT_ROOT: '{{joinPath .TASKFILE_DIR ".."}}'

tasks:
  smoketest:
    desc: "Run the N6 (#1146) end-to-end smoketest against the hermetic 20-issue fixture. Exits 0 on PASS / 1 on first failure. -- task triage:smoketest [-- --verbose] [--keep-tempdir] [--cache-only]"
    internal: true
    deps: [":engine:_ts-build"]
    dir: '{{.USER_WORKING_DIR}}'
    env:
      DEFT_ROOT: '{{.DEFT_ROOT}}'
    cmds:
      - task: :engine:invoke
        vars:
          ENGINE_CMD: 'triage-smoketest {{.CLI_ARGS}}'
