thought-cabinet 0.0.2

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/LICENSE ADDED
@@ -0,0 +1,15 @@
1
+ Apache Software License 2.0
2
+
3
+ Copyright (c) 2025, Thought Cabinet Authors
4
+
5
+ Licensed under the Apache License, Version 2.0 (the "License");
6
+ you may not use this file except in compliance with the License.
7
+ You may obtain a copy of the License at
8
+
9
+ http://www.apache.org/licenses/LICENSE-2.0
10
+
11
+ Unless required by applicable law or agreed to in writing, software
12
+ distributed under the License is distributed on an "AS IS" BASIS,
13
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ See the License for the specific language governing permissions and
15
+ limitations under the License.
package/README.md ADDED
@@ -0,0 +1,145 @@
1
+ # Thought Cabinet
2
+
3
+ A CLI tool for managing developer thoughts and notes across multiple repositories.
4
+
5
+ ## Overview
6
+
7
+ Thought Cabinet provides a systematic way to organize and version-control your development notes, decisions, and ideas. It synchronizes thoughts across a dedicated git repository while keeping them separate from your code repositories.
8
+
9
+ ## Features
10
+
11
+ - **Multi-repository support**: Manage thoughts for multiple projects from a single thoughts repository
12
+ - **Profile support**: Use different thoughts repositories for different contexts (e.g., work, personal)
13
+ - **Git integration**: Automatic git hooks prevent accidental commits and auto-sync thoughts
14
+ - **Searchable index**: Hard links enable fast searching across all thoughts
15
+ - **User separation**: Personal and shared thought spaces for team collaboration
16
+
17
+ ## Installation
18
+
19
+ ```bash
20
+ npm install -g thought-cabinet
21
+ ```
22
+
23
+ ## Quick Start
24
+
25
+ ### Initialize thoughts for a repository
26
+
27
+ ```bash
28
+ cd your-project
29
+ thoughtcabinet init
30
+ ```
31
+
32
+ This will:
33
+
34
+ 1. Set up a global thoughts repository (default: `~/thoughts`)
35
+ 2. Create directory structure for this project
36
+ 3. Install git hooks for protection and auto-sync
37
+ 4. Create symlinks in `thoughts/` directory
38
+
39
+ ### Sync thoughts manually
40
+
41
+ ```bash
42
+ thoughtcabinet sync
43
+ ```
44
+
45
+ ### Check status
46
+
47
+ ```bash
48
+ thoughtcabinet status
49
+ ```
50
+
51
+ ## Directory Structure
52
+
53
+ After initialization, your repository will have:
54
+
55
+ ```
56
+ your-project/
57
+ └── thoughts/
58
+ ├── yourusername/ → Your personal notes for this project
59
+ ├── shared/ → Team-shared notes for this project
60
+ ├── global/ → Cross-project thoughts
61
+ │ ├── yourusername/ - Your personal cross-repo notes
62
+ │ └── shared/ - Team cross-repo notes
63
+ └── searchable/ → Hard links for searching
64
+ ```
65
+
66
+ ## Commands
67
+
68
+ ### Basic Commands
69
+
70
+ - `thoughtcabinet init` - Initialize thoughts for current repository
71
+ - `thoughtcabinet sync` - Manually sync thoughts to repository
72
+ - `thoughtcabinet status` - Show status of thoughts repository
73
+ - `thoughtcabinet config` - View or edit configuration
74
+ - `thoughtcabinet destroy` - Remove thoughts setup from current repository
75
+
76
+ ### Profile Commands
77
+
78
+ Profiles allow you to use different thoughts repositories for different contexts:
79
+
80
+ - `thoughtcabinet profile create <name>` - Create a new profile
81
+ - `thoughtcabinet profile list` - List all profiles
82
+ - `thoughtcabinet profile show <name>` - Show profile details
83
+ - `thoughtcabinet profile delete <name>` - Delete a profile
84
+
85
+ Use a profile with:
86
+
87
+ ```bash
88
+ thoughtcabinet init --profile work
89
+ ```
90
+
91
+ ## Configuration
92
+
93
+ Configuration is stored in `~/.config/thought-cabinet/config.json`.
94
+
95
+ View configuration:
96
+
97
+ ```bash
98
+ thoughtcabinet config
99
+ ```
100
+
101
+ Edit configuration:
102
+
103
+ ```bash
104
+ thoughtcabinet config --edit
105
+ ```
106
+
107
+ ## Git Hooks
108
+
109
+ Thought Cabinet installs two git hooks:
110
+
111
+ 1. **pre-commit**: Prevents accidental commits of the `thoughts/` directory
112
+ 2. **post-commit**: Auto-syncs thoughts after each code commit
113
+
114
+ ## Searching Thoughts
115
+
116
+ The `thoughts/searchable/` directory contains hard links to all accessible thought files. This allows search tools to find content without following symlinks:
117
+
118
+ ```bash
119
+ cd your-project
120
+ grep -r "TODO" thoughts/searchable/
121
+ ```
122
+
123
+ **Important**: Always reference files by their canonical path (e.g., `thoughts/yourusername/todo.md`) rather than the searchable path.
124
+
125
+ ## Best Practices
126
+
127
+ 1. Use `yourusername/` for personal, repository-specific notes
128
+ 2. Use `shared/` for team documentation that should be version-controlled
129
+ 3. Use `global/yourusername/` for cross-repository personal notes
130
+ 4. Use `global/shared/` for cross-repository team documentation
131
+ 5. Run `thoughtcabinet sync` before sharing important updates
132
+ 6. Never commit the `thoughts/` directory to your code repository
133
+
134
+ ## Migration from hlyr
135
+
136
+ If you're migrating from the hlyr thoughts system:
137
+
138
+ 1. The configuration format is compatible
139
+ 2. Your existing thoughts repository will work as-is
140
+ 3. Run `thoughtcabinet init` in your repositories
141
+ 4. Old git hooks will be automatically updated
142
+
143
+ ## License
144
+
145
+ Apache-2.0
@@ -0,0 +1 @@
1
+ #!/usr/bin/env node