ddflow_bug
Log bug findings, file fix tasks, and mark bugs fixed or invalid in the ddflow work queue. Link each record to tasks, tests, and evidence.
Instructions
Bug records. Set action; required arguments in brackets: fixed(id), invalid(id,reason), found(summary), file_tasks.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Stable id, e.g. 'B1'. You will cite it when closing. | |
| all | No | File a fix task for EVERY open bug that has none, other agents' too. Without it and without `id`, only a preview. | |
| item | No | The task it was found in or affects. | |
| globs | No | The fix task's files; default: the item's globs. | |
| scope | No | project (default) or ddflow. | |
| title | No | Short headline. | |
| action | Yes | What to do; see the tool description for each action's arguments. | |
| landed | No | A commit already on the base that holds the fix (the fix task was claimed after it landed): the test must fail on its first parent and pass on it; the fix task is ended naming it. | |
| lesson | No | Id of an existing lesson this bug belongs to. | |
| reason | No | Why the finding is false (with reopen: why reopen). | |
| reopen | No | Reopen the closed bug instead. | |
| dry_run | No | List what would be filed; write nothing. | |
| no_task | No | File no fix task (fixed in the same commit). | |
| summary | No | What is wrong, in one line. | |
| as_agent | No | Subagent name, this call only. | |
| evidence | No | The probe command or test node id that showed it false. | |
| mutation | No | Test-only fix: JSON {"file","old","new"} disabling it; the test must FAIL. | |
| relation | No | Answer to a 'possible duplicate' refusal: new | extends:ID | duplicate_of:ID | related:ID | merge_into:ID. Omit at first. | |
| severity | No | low|medium|high|critical. | |
| changelog | No | Optional 'Fixed: text' (any category), or skip. | |
| check_only | No | Dry run: write nothing, return the `candidates`. | |
| lesson_rule | No | The lesson in full: the transferable rule, not the incident. | |
| lint_exempt | No | For a CI-filed LINT bug (a check that is not a test, e.g. ruff format --check): why it needs no regression test (what made the check green). Recorded as regression_verified=exempt-lint; instead of regression_test. | |
| lesson_title | No | Capture a lesson at the same time. | |
| verify_reason | No | Why the pre-fix check is skipped (recorded); required with skip_regression_verify. | |
| regression_test | No | Test that now guards this. Several: separate with ',' or ';'. | |
| regression_tests | No | The tests guarding this, one per element: the list form of regression_test. | |
| skip_regression_verify | No | Skip the pre-fix check (the test must FAIL pre-fix, PASS fixed). Needs verify_reason. |