knowns 0.3.0 → 0.3.1

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/CHANGELOG.md CHANGED
@@ -5,6 +5,24 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.3.1] - 2025-12-30
9
+
10
+ ### Fixed
11
+ - **Kanban Drag-Drop**: Fixed cards not being droppable into empty columns
12
+ - Implemented custom multi-strategy collision detection algorithm
13
+ - Strategy 1: Pointer position detection (most intuitive for users)
14
+ - Strategy 2: Rectangle intersection for overlapping elements
15
+ - Strategy 3: Extended bounds with 150px buffer for near-column detection
16
+ - Strategy 4: Closest corners fallback for edge cases
17
+ - Dragging is now much smoother and easier
18
+
19
+ ### Changed
20
+ - **MCP Integration Docs**: Updated `docs/mcp-integration.md` with complete tool reference
21
+ - Added all 15 MCP tools with parameters
22
+ - Added time tracking and board tools
23
+ - Added troubleshooting section for `--verbose` and `--info` flags
24
+ - Added resources section with links to official docs
25
+
8
26
  ## [0.3.0] - 2025-12-29
9
27
 
10
28
  ### Added
@@ -326,6 +344,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
326
344
  - CLAUDE.md with complete guidelines for AI agents
327
345
  - Example workflows and patterns
328
346
 
347
+ [0.3.1]: https://github.com/knowns-dev/knowns/compare/v0.3.0...v0.3.1
348
+ [0.3.0]: https://github.com/knowns-dev/knowns/compare/v0.2.1...v0.3.0
349
+ [0.2.1]: https://github.com/knowns-dev/knowns/compare/v0.2.0...v0.2.1
329
350
  [0.2.0]: https://github.com/knowns-dev/knowns/compare/v0.1.8...v0.2.0
330
351
  [0.1.8]: https://github.com/knowns-dev/knowns/compare/v0.1.7...v0.1.8
331
352
  [0.1.7]: https://github.com/knowns-dev/knowns/compare/v0.1.6...v0.1.7
package/CLAUDE.md CHANGED
@@ -232,8 +232,8 @@ $ knowns task create "Add password reset flow" \
232
232
 
233
233
  # Output: Created task AUTH-042
234
234
 
235
- # 2. Take the task and start timer
236
- $ knowns task edit AUTH-042 -s in-progress -a @me
235
+ # 2. Take the task and start timer (uses defaultAssignee or @me fallback)
236
+ $ knowns task edit AUTH-042 -s in-progress -a $(knowns config get defaultAssignee --plain || echo "@me")
237
237
  $ knowns time start AUTH-042
238
238
 
239
239
  # Output: Timer started for AUTH-042
@@ -306,17 +306,24 @@ $ knowns task edit AUTH-042 -s done
306
306
  ### Step 1: Take Task
307
307
 
308
308
  ```bash
309
- knowns task edit <id> -s in-progress -a @me
309
+ # Assign using defaultAssignee from config (falls back to @me if not set)
310
+ knowns task edit <id> -s in-progress -a $(knowns config get defaultAssignee --plain || echo "@me")
310
311
  ```
311
312
 
312
- > **Note**: `@me` is a special keyword that assigns the task to yourself. You can also use specific usernames like `@harry` or `@john`.
313
+ > **Note**: The `defaultAssignee` is configured in `.knowns/config.json` during `knowns init`. If not set, `@me` is used as fallback. To update: `knowns config set defaultAssignee "@username"`
313
314
 
314
- ### Step 2: Start Time Tracking
315
+ ### Step 2: Start Time Tracking (REQUIRED)
315
316
 
316
317
  ```bash
317
318
  knowns time start <id>
318
319
  ```
319
320
 
321
+ > **CRITICAL**: Time tracking is MANDATORY. Always start timer when taking a task and stop when done. This data is essential for:
322
+ > - Accurate project estimation
323
+ > - Identifying bottlenecks
324
+ > - Resource planning
325
+ > - Sprint retrospectives
326
+
320
327
  ### Step 3: Read Related Documentation
321
328
 
322
329
  > **FOR AI AGENTS**: This step is MANDATORY, not optional. You must understand the codebase before planning.
@@ -352,11 +359,43 @@ knowns task edit <id> --plan $'1. Research patterns (see @doc/security-patterns)
352
359
  ### Step 5: Implement
353
360
 
354
361
  ```bash
355
- # Check acceptance criteria as you complete them
356
- knowns task edit <id> --check-ac 1 --check-ac 2 --check-ac 3
362
+ # Work through implementation plan step by step
363
+ # IMPORTANT: Only check AC AFTER completing the work, not before
364
+
365
+ # After completing work for AC #1:
366
+ knowns task edit <id> --check-ac 1
367
+ knowns task edit <id> --append-notes "✓ Completed: <brief description>"
368
+
369
+ # After completing work for AC #2:
370
+ knowns task edit <id> --check-ac 2
371
+ knowns task edit <id> --append-notes "✓ Completed: <brief description>"
372
+ ```
373
+
374
+ > **CRITICAL**: Never check an AC before the work is actually done. ACs represent completed outcomes, not intentions.
375
+
376
+ ### Step 6: Handle Dynamic Requests (During Implementation)
377
+
378
+ If the user adds new requirements during implementation:
379
+
380
+ ```bash
381
+ # Add new acceptance criteria
382
+ knowns task edit <id> --ac "New requirement from user"
383
+
384
+ # Update implementation plan to include new steps
385
+ knowns task edit <id> --plan $'1. Original step 1
386
+ 2. Original step 2
387
+ 3. NEW: Handle user request for X
388
+ 4. Continue with remaining work'
389
+
390
+ # Append note about scope change
391
+ knowns task edit <id> --append-notes "⚠️ Scope updated: Added requirement for X per user request"
392
+
393
+ # Continue with Step 5 (Implement) for new requirements
357
394
  ```
358
395
 
359
- ### Step 6: Add Implementation Notes
396
+ > **Note**: Always document scope changes. This helps track why a task took longer than expected.
397
+
398
+ ### Step 7: Add Implementation Notes
360
399
 
361
400
  ```bash
362
401
  # Add comprehensive notes (suitable for PR description)
@@ -373,18 +412,77 @@ knowns task edit <id> --append-notes "✓ Implemented middleware"
373
412
  knowns task edit <id> --append-notes "✓ Added tests"
374
413
  ```
375
414
 
376
- ### Step 7: Stop Time Tracking
415
+ ### Step 8: Stop Time Tracking (REQUIRED)
377
416
 
378
417
  ```bash
379
418
  knowns time stop
380
419
  ```
381
420
 
382
- ### Step 8: Complete Task
421
+ > **CRITICAL**: Never forget to stop the timer. If you forget, use manual entry: `knowns time add <id> <duration> -n "Forgot to stop timer"`
422
+
423
+ ### Step 9: Complete Task
383
424
 
384
425
  ```bash
385
426
  knowns task edit <id> -s done
386
427
  ```
387
428
 
429
+ ### Step 10: Handle Post-Completion Changes (If Applicable)
430
+
431
+ If the user requests changes or updates AFTER task is marked done:
432
+
433
+ ```bash
434
+ # 1. Reopen task - set back to in-progress
435
+ knowns task edit <id> -s in-progress
436
+
437
+ # 2. Restart time tracking (REQUIRED)
438
+ knowns time start <id>
439
+
440
+ # 3. Add new AC for the changes requested
441
+ knowns task edit <id> --ac "Post-completion fix: <description>"
442
+
443
+ # 4. Document the reopen reason
444
+ knowns task edit <id> --append-notes "🔄 Reopened: User requested changes - <reason>"
445
+
446
+ # 5. Follow Step 5-9 again (Implement → Notes → Stop Timer → Done)
447
+ ```
448
+
449
+ > **CRITICAL**: Treat post-completion changes as a mini-workflow. Always:
450
+ > - Reopen task (in-progress)
451
+ > - Start timer again
452
+ > - Add AC for traceability
453
+ > - Document why it was reopened
454
+ > - Follow the same completion process
455
+
456
+ ### Step 11: Knowledge Extraction (Post-Completion)
457
+
458
+ After completing a task, extract reusable knowledge to docs:
459
+
460
+ ```bash
461
+ # Search if similar pattern already documented
462
+ knowns search "<pattern/concept>" --type doc --plain
463
+
464
+ # If new knowledge, create a doc for future reference
465
+ knowns doc create "Pattern: <Name>" \
466
+ -d "Reusable pattern discovered during task implementation" \
467
+ -t "pattern,<domain>" \
468
+ -f "patterns"
469
+
470
+ # Or append to existing doc
471
+ knowns doc edit "<existing-doc>" -a "## New Section\n\nLearned from task <id>: ..."
472
+
473
+ # Reference the source task
474
+ knowns doc edit "<doc-name>" -a "\n\n> Source: @task-<id>"
475
+ ```
476
+
477
+ **When to extract knowledge:**
478
+ - New patterns/conventions discovered
479
+ - Common error solutions
480
+ - Reusable code snippets or approaches
481
+ - Integration patterns with external services
482
+ - Performance optimization techniques
483
+
484
+ > **CRITICAL**: Only extract **generalizable** knowledge. Task-specific details belong in implementation notes, not docs.
485
+
388
486
  ---
389
487
 
390
488
  ## Essential Commands
@@ -400,7 +498,7 @@ knowns task edit <id> -t "New title"
400
498
  knowns task edit <id> -d "New description"
401
499
  knowns task edit <id> -s in-progress
402
500
  knowns task edit <id> --priority high
403
- knowns task edit <id> -a @me
501
+ knowns task edit <id> -a <assignee> # $(knowns config get defaultAssignee --plain || echo "@me")
404
502
 
405
503
  # Acceptance Criteria
406
504
  knowns task edit <id> --ac "New criterion" # Add
@@ -418,7 +516,7 @@ knowns task <id> --plain # Shorthand (ALWAYS use --p
418
516
  knowns task view <id> --plain # Full command
419
517
  knowns task list --plain
420
518
  knowns task list --status in-progress --plain
421
- knowns task list --assignee @me --plain
519
+ knowns task list --assignee <assignee> --plain # $(knowns config get defaultAssignee --plain || echo "@me")
422
520
  knowns task list --tree --plain # Tree hierarchy
423
521
  ```
424
522
 
@@ -582,10 +680,11 @@ A task is **Done** ONLY when **ALL** criteria are met:
582
680
 
583
681
  ### Via CLI (Required)
584
682
 
585
- - [ ] All acceptance criteria checked: `--check-ac <index>`
683
+ - [ ] All acceptance criteria checked: `--check-ac <index>` (only after work is actually done)
586
684
  - [ ] Implementation notes added: `--notes "..."`
587
- - [ ] Timer stopped: `knowns time stop`
685
+ - [ ] ⏱️ Timer stopped: `knowns time stop` (MANDATORY - do not skip!)
588
686
  - [ ] Status set to done: `-s done`
687
+ - [ ] Knowledge extracted to docs (if applicable)
589
688
 
590
689
  ### Via Code (Required)
591
690
 
@@ -626,6 +725,8 @@ Use **lowercase with hyphens**:
626
725
  |-------|-------|
627
726
  | Edit .md files directly | Use `knowns task edit` |
628
727
  | Change `- [ ]` to `- [x]` in file | Use `--check-ac <index>` |
728
+ | Check AC before completing work | Only check AC AFTER work is actually done |
729
+ | Skip time tracking | ALWAYS use `time start` and `time stop` |
629
730
  | Start coding without reading docs | Read ALL related docs FIRST |
630
731
  | Skip `knowns doc list` on new project | Always list docs when starting |
631
732
  | Assume you know the conventions | Read CONVENTIONS/ARCHITECTURE docs |
@@ -638,7 +739,7 @@ Use **lowercase with hyphens**:
638
739
  | Mark done without all criteria | Check ALL criteria first |
639
740
  | Write implementation steps in AC | Write outcome-oriented criteria |
640
741
  | Use `"In Progress"` or `"Done"` | Use `in-progress`, `done` |
641
- | Use `@yourself` | Use `@me` or specific username |
742
+ | Use `@yourself` or unknown assignee | Use `$(knowns config get defaultAssignee --plain \|\| echo "@me")` |
642
743
  | Ignore refs in task description | Follow ALL refs (`@.knowns/...`) before planning |
643
744
  | See `@.knowns/docs/...` but don't read | Use `knowns doc "<path>" --plain` |
644
745
  | See `@.knowns/tasks/task-X` but don't check | Use `knowns task X --plain` for context |
@@ -701,7 +802,7 @@ EOF
701
802
  - [ ] Related docs searched: `knowns search "keyword" --type doc --plain`
702
803
  - [ ] ALL relevant docs read: `knowns doc "Doc Name" --plain`
703
804
  - [ ] Similar done tasks reviewed for patterns
704
- - [ ] Task assigned to self: `-a @me`
805
+ - [ ] Task assigned to self: `-a $(knowns config get defaultAssignee --plain || echo "@me")`
705
806
  - [ ] Status set to in-progress: `-s in-progress`
706
807
  - [ ] Timer started: `knowns time start <id>`
707
808
 
@@ -714,12 +815,13 @@ EOF
714
815
 
715
816
  ### After Work
716
817
 
717
- - [ ] All acceptance criteria checked
818
+ - [ ] All acceptance criteria checked (only after work is done)
718
819
  - [ ] Implementation notes added: `--notes "..."`
719
820
  - [ ] Timer stopped: `knowns time stop`
720
821
  - [ ] Tests passing
721
822
  - [ ] Documentation updated
722
823
  - [ ] Status set to done: `-s done`
824
+ - [ ] Knowledge extracted to docs (if applicable): patterns, solutions, conventions
723
825
 
724
826
  ---
725
827
 
@@ -734,22 +836,26 @@ knowns doc "CONVENTIONS" --plain
734
836
 
735
837
  # === FULL WORKFLOW ===
736
838
  knowns task create "Title" -d "Description" --ac "Criterion"
737
- knowns task edit <id> -s in-progress -a @me
738
- knowns time start <id>
839
+ knowns task edit <id> -s in-progress -a $(knowns config get defaultAssignee --plain || echo "@me")
840
+ knowns time start <id> # ⏱️ REQUIRED: Start timer
739
841
  knowns search "keyword" --type doc --plain
740
842
  knowns doc "Doc Name" --plain
741
843
  knowns search "keyword" --type task --status done --plain # Learn from history
742
844
  knowns task edit <id> --plan $'1. Step (see @doc/file)\n2. Step'
743
845
  # ... wait for approval, then implement ...
744
- knowns task edit <id> --check-ac 1 --check-ac 2
745
- knowns task edit <id> --append-notes "✓ Completed feature"
746
- knowns time stop
846
+ # Only check AC AFTER completing the work:
847
+ knowns task edit <id> --check-ac 1
848
+ knowns task edit <id> --append-notes "✓ Completed: feature X"
849
+ knowns task edit <id> --check-ac 2
850
+ knowns task edit <id> --append-notes "✓ Completed: feature Y"
851
+ knowns time stop # ⏱️ REQUIRED: Stop timer
747
852
  knowns task edit <id> -s done
853
+ # Optional: Extract knowledge to docs if generalizable patterns found
748
854
 
749
855
  # === VIEW & SEARCH ===
750
856
  knowns task <id> --plain # Shorthand for view
751
857
  knowns task list --plain
752
- knowns task list --status in-progress --assignee @me --plain
858
+ knowns task list --status in-progress --assignee $(knowns config get defaultAssignee --plain || echo "@me") --plain
753
859
  knowns search "query" --plain
754
860
  knowns search "bug" --type task --status in-progress --plain
755
861
 
@@ -786,3 +892,7 @@ knowns doc edit "doc-name" -a "Appended content"
786
892
 
787
893
 
788
894
 
895
+
896
+
897
+
898
+