@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.
Files changed (3) hide show
  1. package/README.md +14 -1
  2. package/package.json +1 -1
  3. 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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@winton979/task-cli",
3
- "version": "1.2.1",
3
+ "version": "1.3.0",
4
4
  "description": "Lightweight task workflow CLI for AI-assisted development",
5
5
  "license": "MIT",
6
6
  "type": "module",
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 }) {