@winton979/task-cli 1.2.1 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -1
- package/package.json +1 -1
- package/src/init.js +77 -2
package/README.md
CHANGED
|
@@ -129,6 +129,7 @@ BUG_READY
|
|
|
129
129
|
### Other
|
|
130
130
|
|
|
131
131
|
* decision-log
|
|
132
|
+
* decision-sweep-weekly
|
|
132
133
|
|
|
133
134
|
---
|
|
134
135
|
|
|
@@ -153,6 +154,18 @@ BUG_READY
|
|
|
153
154
|
|
|
154
155
|
---
|
|
155
156
|
|
|
157
|
+
## Weekly Decision Sweep
|
|
158
|
+
|
|
159
|
+
Calling `/decision-log` after every task is easy to forget. As a lower-friction alternative, run `decision-sweep-weekly` once per week (Friday is a natural fit):
|
|
160
|
+
|
|
161
|
+
```
|
|
162
|
+
/decision-sweep-weekly
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
The skill scans archived task and bug briefs from the past 7 days, judges which ones contain a decision worth keeping (cross-task impact, rejected alternatives, counter-intuitive choices, externally driven calls, or instructive cancellations), drafts the entries, and waits for confirmation before appending to `.ai/decisions/decisions.md`.
|
|
166
|
+
|
|
167
|
+
Use `decision-log` for in-the-moment recording and `decision-sweep-weekly` for periodic cleanup. Either alone is enough; using both is fine.
|
|
168
|
+
|
|
156
169
|
## Philosophy
|
|
157
170
|
|
|
158
171
|
Task CLI is intentionally lightweight.
|
|
@@ -223,7 +236,7 @@ task refresh
|
|
|
223
236
|
This will:
|
|
224
237
|
|
|
225
238
|
* keep `.ai/tasks`, `.ai/bugs`, and `.ai/decisions`
|
|
226
|
-
* remove only these managed skills from `.claude/skills/` and `.codex/skills/`: `task-fast`, `task-explore`, `task-implement`, `task-review`, `task-cancel`, `bug-explore`, `bug-fix`, `bug-review`, `bug-cancel`, `decision-log`
|
|
239
|
+
* remove only these managed skills from `.claude/skills/` and `.codex/skills/`: `task-fast`, `task-explore`, `task-implement`, `task-review`, `task-cancel`, `bug-explore`, `bug-fix`, `bug-review`, `bug-cancel`, `decision-log`, `decision-sweep-weekly`
|
|
227
240
|
* reinstall the latest versions of those skills
|
|
228
241
|
|
|
229
242
|
This avoids touching unrelated custom skills in the same project.
|
package/package.json
CHANGED
package/src/init.js
CHANGED
|
@@ -485,6 +485,79 @@ Requirements
|
|
|
485
485
|
* Maximum 10 lines per decision
|
|
486
486
|
* Append only
|
|
487
487
|
* Keep concise
|
|
488
|
+
`,
|
|
489
|
+
},
|
|
490
|
+
|
|
491
|
+
'decision-sweep-weekly': {
|
|
492
|
+
name: 'decision-sweep-weekly',
|
|
493
|
+
description: 'Weekly sweep of recent task and bug briefs to decide which deserve a decision-log entry. Proposes entries for confirmation before appending.',
|
|
494
|
+
content: `---
|
|
495
|
+
name: decision-sweep-weekly
|
|
496
|
+
description: Weekly sweep of recent task and bug briefs to decide which deserve a decision-log entry. Proposes entries for confirmation before appending.
|
|
497
|
+
user-invocable: true
|
|
498
|
+
---
|
|
499
|
+
|
|
500
|
+
Purpose
|
|
501
|
+
|
|
502
|
+
Batch-review the past week of work and sediment only the decisions that outlive a single task. Replaces per-task reminders with one weekly pass.
|
|
503
|
+
|
|
504
|
+
When to Run
|
|
505
|
+
|
|
506
|
+
Run once per week, ideally on Friday. May also run ad-hoc after a busy stretch.
|
|
507
|
+
|
|
508
|
+
Workflow
|
|
509
|
+
|
|
510
|
+
1. Scan briefs created in the last 7 days under .ai/tasks/archive/ and .ai/bugs/archive/. Filter by filename date prefix YYYY-MM-DD. If a brief lacks a date prefix, fall back to filesystem mtime.
|
|
511
|
+
2. For cancelled briefs in either archive, treat the abandonment itself as potential decision material.
|
|
512
|
+
3. Evaluate each brief against the Sediment Conditions below.
|
|
513
|
+
4. For each candidate, draft a decision entry using the four-section format.
|
|
514
|
+
5. Present a single review list: every scanned brief with a verdict (write / skip / insufficient info), then the proposed drafts grouped at the end.
|
|
515
|
+
6. Do NOT append anything yet. Wait for the user to confirm which drafts to keep, edit, or drop.
|
|
516
|
+
7. Only after confirmation, append the approved entries to .ai/decisions/decisions.md, oldest first, under the matching YYYY-MM-DD section heading.
|
|
517
|
+
8. Report what was appended and what was skipped.
|
|
518
|
+
|
|
519
|
+
Sediment Conditions
|
|
520
|
+
|
|
521
|
+
A brief becomes a decision entry if it satisfies any of:
|
|
522
|
+
|
|
523
|
+
* Cross-task impact: the choice constrains how future tasks must be written.
|
|
524
|
+
* A concrete alternative was rejected and someone could plausibly pick it later.
|
|
525
|
+
* Counter-intuitive choice: code reads like an anti-pattern but is intentional.
|
|
526
|
+
* Externally driven: compliance, performance, compatibility, or a third-party API limit forced the call.
|
|
527
|
+
* A cancelled attempt whose failure is itself a useful conclusion.
|
|
528
|
+
|
|
529
|
+
Skip Conditions
|
|
530
|
+
|
|
531
|
+
* Affects only the implementation detail of one task.
|
|
532
|
+
* A temporary or unsettled conclusion.
|
|
533
|
+
* A bare fact with no decision behind it.
|
|
534
|
+
|
|
535
|
+
Entry Format
|
|
536
|
+
|
|
537
|
+
## YYYY-MM-DD
|
|
538
|
+
|
|
539
|
+
### Problem
|
|
540
|
+
|
|
541
|
+
What issue was encountered.
|
|
542
|
+
|
|
543
|
+
### Decision
|
|
544
|
+
|
|
545
|
+
What was chosen.
|
|
546
|
+
|
|
547
|
+
### Reason
|
|
548
|
+
|
|
549
|
+
Why this choice was made.
|
|
550
|
+
|
|
551
|
+
### Alternatives Considered
|
|
552
|
+
|
|
553
|
+
What alternatives were rejected.
|
|
554
|
+
|
|
555
|
+
Requirements
|
|
556
|
+
|
|
557
|
+
* Maximum 10 lines per decision
|
|
558
|
+
* Append only
|
|
559
|
+
* One date section per day; multiple decisions on the same day stack under the same heading
|
|
560
|
+
* Never edit or delete prior entries
|
|
488
561
|
`,
|
|
489
562
|
},
|
|
490
563
|
};
|
|
@@ -649,7 +722,8 @@ export function init(cwd, { fs, path, log }) {
|
|
|
649
722
|
fast: task-fast
|
|
650
723
|
task: task-explore -> task-implement -> task-review | task-cancel
|
|
651
724
|
bug: bug-explore -> bug-fix -> bug-review | bug-cancel
|
|
652
|
-
other: decision-log
|
|
725
|
+
other: decision-log
|
|
726
|
+
sweep: decision-sweep-weekly`);
|
|
653
727
|
}
|
|
654
728
|
|
|
655
729
|
export function refresh(cwd, { fs, path, log }) {
|
|
@@ -683,7 +757,8 @@ export function refresh(cwd, { fs, path, log }) {
|
|
|
683
757
|
fast: task-fast
|
|
684
758
|
task: task-explore -> task-implement -> task-review | task-cancel
|
|
685
759
|
bug: bug-explore -> bug-fix -> bug-review | bug-cancel
|
|
686
|
-
other: decision-log
|
|
760
|
+
other: decision-log
|
|
761
|
+
sweep: decision-sweep-weekly`);
|
|
687
762
|
}
|
|
688
763
|
|
|
689
764
|
export function doctor(cwd, { fs, path, log }) {
|