Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ jobs:
- name: Set up Go
uses: actions/setup-go@v6
with:
go-version: "1.25"
go-version: "1.26"
cache-dependency-path: go.sum

- name: Download dependencies
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ jobs:
- name: Set up Go
uses: actions/setup-go@v6
with:
go-version: "1.25"
go-version: "1.26"
cache-dependency-path: go.sum

- name: Run goreleaser
Expand Down
9 changes: 8 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -87,9 +87,15 @@ tskflwctl audit new auth --template security # pick a body scaffold (default|se
# read
tskflwctl task list # active tasks (--all / --status / --epic / --tag)
tskflwctl task list --revisit-due # deferred tasks whose snooze date has arrived
tskflwctl task show <slug>
tskflwctl task show <slug> # metadata + body (--section <name> / --frontmatter-only to narrow)
tskflwctl task info <slug> --json # token-cheap metadata: path, status, epic, ac:{checked,total} (no body)
tskflwctl task path <slug> # just the absolute file path — $EDITOR "$(tskflwctl task path <slug>)"
tskflwctl epic list # rollup: done/total per epic
tskflwctl epic show <id> --section goal # epic body section (or --frontmatter-only); epic path <id> for the file
tskflwctl audit list # open audits (--all / --closed / --deferred)
tskflwctl audit show <slug> --section findings # audit body section (or --frontmatter-only)
tskflwctl audit info <slug> --json # token-cheap: path, bucket, findings:{total,open,in_progress,done,dropped}
tskflwctl audit path <slug> # just the absolute file path (like task path)
tskflwctl audit findings --status open --effort XS,S --json # query findings across audits
tskflwctl audit lint # validate finding status vocab + missing status + bucket↔state
tskflwctl schema # the tool's contract for agents (statuses, fields, codes)
Expand All @@ -103,6 +109,7 @@ tskflwctl task set <slug> --priority high --tags a,b
tskflwctl task edit <slug> # open the whole file in $EDITOR (human; re-validated on save)
echo "## Findings" | tskflwctl task append <slug> --body-file - # add a section (agent; atomic)
tskflwctl task set <slug> --body-file notes.md # replace the body (agent; its own call)
tskflwctl task ac <slug> # numbered acceptance criteria; --check/--uncheck <n> to flip one
tskflwctl task start|next|ready|complete|defer|deprecate <slug>... # defer takes --until <date>
tskflwctl task defer <slug> --until 2026-09-01 # snooze (revisit_at); on a TTY, prompts for the date
tskflwctl audit close|reopen|defer <slug>...
Expand Down
2 changes: 2 additions & 0 deletions docs/cli/tskflwctl_audit.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,11 @@ Work with code audits
* [tskflwctl audit defer](tskflwctl_audit_defer.md) - Move audit(s) to deferred/
* [tskflwctl audit edit](tskflwctl_audit_edit.md) - Open an audit in your editor (whole file; re-validated on save)
* [tskflwctl audit findings](tskflwctl_audit_findings.md) - Query findings across audits (or one) by status/effort/urgency/component
* [tskflwctl audit info](tskflwctl_audit_info.md) - Show an audit's metadata + file path + finding tally (no body)
* [tskflwctl audit lint](tskflwctl_audit_lint.md) - Validate audit findings (status vocabulary, missing status, bucket↔state)
* [tskflwctl audit list](tskflwctl_audit_list.md) - List audits (open by default)
* [tskflwctl audit new](tskflwctl_audit_new.md) - Create a new audit (open bucket, scaffolded findings)
* [tskflwctl audit path](tskflwctl_audit_path.md) - Print the absolute path to an audit's file
* [tskflwctl audit reopen](tskflwctl_audit_reopen.md) - Move audit(s) back to open/
* [tskflwctl audit show](tskflwctl_audit_show.md) - Show an audit's metadata and body

39 changes: 39 additions & 0 deletions docs/cli/tskflwctl_audit_info.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
## tskflwctl audit info

Show an audit's metadata + file path + finding tally (no body)

```
tskflwctl audit info <audit> [flags]
```

### Examples

```
tskflwctl audit show 2026-06-20-api-gateway --frontmatter-only
tskflwctl audit info 2026-06-20-api-gateway --json
```

### Options

```
-h, --help help for info
```

### Options inherited from parent commands

```
-C, --chdir string anchor to the planning repo at this path
--color string colorize output: auto|always|never (default "auto")
--dry-run preview the mutation without writing (validation still runs)
--json machine-readable JSON output
--no-color disable colored output (alias for --color=never)
--no-input never prompt; missing required input is an error (for scripts/agents; also TSKFLW_NO_INPUT)
--no-pager do not pipe long human output through a pager
--paginate page long human output through $PAGER (on a TTY), even if disabled in config
--theme string color theme name (overrides TSKFLW_THEME and [theme].name in config)
```

### SEE ALSO

* [tskflwctl audit](tskflwctl_audit.md) - Work with code audits

39 changes: 39 additions & 0 deletions docs/cli/tskflwctl_audit_path.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
## tskflwctl audit path

Print the absolute path to an audit's file

```
tskflwctl audit path <audit> [flags]
```

### Examples

```
tskflwctl audit path 2026-06-20-api-gateway
$EDITOR "$(tskflwctl audit path 2026-06-20-api-gateway)"
```

### Options

```
-h, --help help for path
```

### Options inherited from parent commands

```
-C, --chdir string anchor to the planning repo at this path
--color string colorize output: auto|always|never (default "auto")
--dry-run preview the mutation without writing (validation still runs)
--json machine-readable JSON output
--no-color disable colored output (alias for --color=never)
--no-input never prompt; missing required input is an error (for scripts/agents; also TSKFLW_NO_INPUT)
--no-pager do not pipe long human output through a pager
--paginate page long human output through $PAGER (on a TTY), even if disabled in config
--theme string color theme name (overrides TSKFLW_THEME and [theme].name in config)
```

### SEE ALSO

* [tskflwctl audit](tskflwctl_audit.md) - Work with code audits

9 changes: 6 additions & 3 deletions docs/cli/tskflwctl_audit_show.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,17 @@ tskflwctl audit show <audit> [flags]

```
tskflwctl audit show 2026-06-20-api-gateway
tskflwctl audit show # pick from a list
tskflwctl audit show 2026-06-20-api-gateway --section findings
tskflwctl audit show 2026-06-20-api-gateway --frontmatter-only
```

### Options

```
-h, --help help for show
--raw print the raw markdown body (skip rendering)
--frontmatter-only show only the metadata, skipping the body
-h, --help help for show
--raw print the raw markdown body (skip rendering)
--section string show only the body section whose heading matches this name (e.g. acceptance, progress)
```

### Options inherited from parent commands
Expand Down
1 change: 1 addition & 0 deletions docs/cli/tskflwctl_epic.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ Work with epics
* [tskflwctl epic list](tskflwctl_epic_list.md) - List epics with task rollup
* [tskflwctl epic move](tskflwctl_epic_move.md) - Transition epic(s) to <status> (active|retired|deprecated)
* [tskflwctl epic new](tskflwctl_epic_new.md) - Create a new epic (auto-numbered NN-slug)
* [tskflwctl epic path](tskflwctl_epic_path.md) - Print the absolute path to an epic's file
* [tskflwctl epic set](tskflwctl_epic_set.md) - Set one or more epic frontmatter fields (validated, single atomic write)
* [tskflwctl epic show](tskflwctl_epic_show.md) - Show an epic and the tasks under it

39 changes: 39 additions & 0 deletions docs/cli/tskflwctl_epic_path.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
## tskflwctl epic path

Print the absolute path to an epic's file

```
tskflwctl epic path <epic> [flags]
```

### Examples

```
tskflwctl epic path 01-api-gateway
$EDITOR "$(tskflwctl epic path 01-api-gateway)"
```

### Options

```
-h, --help help for path
```

### Options inherited from parent commands

```
-C, --chdir string anchor to the planning repo at this path
--color string colorize output: auto|always|never (default "auto")
--dry-run preview the mutation without writing (validation still runs)
--json machine-readable JSON output
--no-color disable colored output (alias for --color=never)
--no-input never prompt; missing required input is an error (for scripts/agents; also TSKFLW_NO_INPUT)
--no-pager do not pipe long human output through a pager
--paginate page long human output through $PAGER (on a TTY), even if disabled in config
--theme string color theme name (overrides TSKFLW_THEME and [theme].name in config)
```

### SEE ALSO

* [tskflwctl epic](tskflwctl_epic.md) - Work with epics

9 changes: 6 additions & 3 deletions docs/cli/tskflwctl_epic_show.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,17 @@ tskflwctl epic show <epic> [flags]

```
tskflwctl epic show 01-api-gateway
tskflwctl epic show # pick from a list
tskflwctl epic show 01-api-gateway --section goal
tskflwctl epic show 01-api-gateway --frontmatter-only
```

### Options

```
-h, --help help for show
--raw print the raw markdown body (skip rendering)
--frontmatter-only show only the metadata, skipping the body
-h, --help help for show
--raw print the raw markdown body (skip rendering)
--section string show only the body section whose heading matches this name (e.g. acceptance, progress)
```

### Options inherited from parent commands
Expand Down
3 changes: 3 additions & 0 deletions docs/cli/tskflwctl_task.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,15 +25,18 @@ Work with tasks
### SEE ALSO

* [tskflwctl](tskflwctl.md) - Local-first planning CLI (tasks, epics, audits) over markdown
* [tskflwctl task ac](tskflwctl_task_ac.md) - List a task's acceptance criteria, or check/uncheck one by index
* [tskflwctl task append](tskflwctl_task_append.md) - Append a section to a task's body (atomic; agent-facing)
* [tskflwctl task complete](tskflwctl_task_complete.md) - Move task(s) to completed
* [tskflwctl task defer](tskflwctl_task_defer.md) - Move task(s) to deferred (optionally with a revisit date)
* [tskflwctl task deprecate](tskflwctl_task_deprecate.md) - Move task(s) to deprecated
* [tskflwctl task edit](tskflwctl_task_edit.md) - Open a task in your editor (whole file; re-validated on save)
* [tskflwctl task info](tskflwctl_task_info.md) - Show a task's metadata + file path + acceptance tally (no body)
* [tskflwctl task list](tskflwctl_task_list.md) - List tasks (active by default)
* [tskflwctl task move](tskflwctl_task_move.md) - Transition task(s) to <status> (generic escape hatch)
* [tskflwctl task new](tskflwctl_task_new.md) - Create a new task (validated, handoff-ready scaffold)
* [tskflwctl task next](tskflwctl_task_next.md) - Move task(s) to next-up
* [tskflwctl task path](tskflwctl_task_path.md) - Print the absolute path to a task's file
* [tskflwctl task ready](tskflwctl_task_ready.md) - Move task(s) to ready-to-start
* [tskflwctl task rename](tskflwctl_task_rename.md) - Re-title a task (new slug, id kept) and cascade its inbound body links
* [tskflwctl task set](tskflwctl_task_set.md) - Set one or more frontmatter fields (validated, single atomic write)
Expand Down
47 changes: 47 additions & 0 deletions docs/cli/tskflwctl_task_ac.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
## tskflwctl task ac

List a task's acceptance criteria, or check/uncheck one by index

### Synopsis

List a task's acceptance criteria — the checkboxes under its `## Acceptance criteria` section — or flip one by 1-based index. Run with no flags (or --list) to number them, then --check <n> / --uncheck <n> to tick or clear one. Matching is index-based, not substring, for robustness. A flip rewrites only that one checkbox (the rest of the file is preserved), is atomic, and is idempotent — flipping to the current state writes nothing. Checkboxes in fenced code blocks are ignored, and a missing section or out-of-range index is a validation error (exit 11).

```
tskflwctl task ac <task> [flags]
```

### Examples

```
tskflwctl task ac add-retry-backoff # numbered list
tskflwctl task ac add-retry-backoff --check 3 # tick criterion 3
tskflwctl task ac add-retry-backoff --uncheck 3
```

### Options

```
--check int check the criterion at this 1-based index
-h, --help help for ac
--list list the acceptance criteria (the default)
--uncheck int uncheck the criterion at this 1-based index
```

### Options inherited from parent commands

```
-C, --chdir string anchor to the planning repo at this path
--color string colorize output: auto|always|never (default "auto")
--dry-run preview the mutation without writing (validation still runs)
--json machine-readable JSON output
--no-color disable colored output (alias for --color=never)
--no-input never prompt; missing required input is an error (for scripts/agents; also TSKFLW_NO_INPUT)
--no-pager do not pipe long human output through a pager
--paginate page long human output through $PAGER (on a TTY), even if disabled in config
--theme string color theme name (overrides TSKFLW_THEME and [theme].name in config)
```

### SEE ALSO

* [tskflwctl task](tskflwctl_task.md) - Work with tasks

39 changes: 39 additions & 0 deletions docs/cli/tskflwctl_task_info.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
## tskflwctl task info

Show a task's metadata + file path + acceptance tally (no body)

```
tskflwctl task info <task> [flags]
```

### Examples

```
tskflwctl task info add-retry-backoff
tskflwctl task info add-retry-backoff --json
```

### Options

```
-h, --help help for info
```

### Options inherited from parent commands

```
-C, --chdir string anchor to the planning repo at this path
--color string colorize output: auto|always|never (default "auto")
--dry-run preview the mutation without writing (validation still runs)
--json machine-readable JSON output
--no-color disable colored output (alias for --color=never)
--no-input never prompt; missing required input is an error (for scripts/agents; also TSKFLW_NO_INPUT)
--no-pager do not pipe long human output through a pager
--paginate page long human output through $PAGER (on a TTY), even if disabled in config
--theme string color theme name (overrides TSKFLW_THEME and [theme].name in config)
```

### SEE ALSO

* [tskflwctl task](tskflwctl_task.md) - Work with tasks

39 changes: 39 additions & 0 deletions docs/cli/tskflwctl_task_path.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
## tskflwctl task path

Print the absolute path to a task's file

```
tskflwctl task path <task> [flags]
```

### Examples

```
tskflwctl task path add-retry-backoff
$EDITOR "$(tskflwctl task path add-retry-backoff)"
```

### Options

```
-h, --help help for path
```

### Options inherited from parent commands

```
-C, --chdir string anchor to the planning repo at this path
--color string colorize output: auto|always|never (default "auto")
--dry-run preview the mutation without writing (validation still runs)
--json machine-readable JSON output
--no-color disable colored output (alias for --color=never)
--no-input never prompt; missing required input is an error (for scripts/agents; also TSKFLW_NO_INPUT)
--no-pager do not pipe long human output through a pager
--paginate page long human output through $PAGER (on a TTY), even if disabled in config
--theme string color theme name (overrides TSKFLW_THEME and [theme].name in config)
```

### SEE ALSO

* [tskflwctl task](tskflwctl_task.md) - Work with tasks

9 changes: 6 additions & 3 deletions docs/cli/tskflwctl_task_show.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,17 @@ tskflwctl task show <task> [flags]

```
tskflwctl task show add-retry-backoff
tskflwctl task show # pick from a list
tskflwctl task show add-retry-backoff --section acceptance
tskflwctl task show add-retry-backoff --frontmatter-only
```

### Options

```
-h, --help help for show
--raw print the raw markdown body (skip rendering)
--frontmatter-only show only the metadata, skipping the body
-h, --help help for show
--raw print the raw markdown body (skip rendering)
--section string show only the body section whose heading matches this name (e.g. acceptance, progress)
```

### Options inherited from parent commands
Expand Down
Loading
Loading