projectmem 0.0.1__tar.gz

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.
@@ -0,0 +1,5 @@
1
+ # Changelog
2
+
3
+ ## 0.0.1
4
+
5
+ - Initial local MVP scaffold.
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 projectmem contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,212 @@
1
+ Metadata-Version: 2.3
2
+ Name: projectmem
3
+ Version: 0.0.1
4
+ Summary: Project memory for humans and AI tools: capture issues, attempts, fixes, and decisions in readable Markdown and JSONL.
5
+ Project-URL: Homepage, https://github.com/riponcm/projectmem
6
+ Project-URL: Repository, https://github.com/riponcm/projectmem
7
+ Project-URL: Issues, https://github.com/riponcm/projectmem/issues
8
+ Author: Ripon Chandra Malo
9
+ License: MIT
10
+ Classifier: Development Status :: 2 - Pre-Alpha
11
+ Classifier: Environment :: Console
12
+ Classifier: Intended Audience :: Developers
13
+ Classifier: License :: OSI Approved :: MIT License
14
+ Classifier: Programming Language :: Python :: 3
15
+ Classifier: Programming Language :: Python :: 3.10
16
+ Classifier: Programming Language :: Python :: 3.11
17
+ Classifier: Programming Language :: Python :: 3.12
18
+ Classifier: Topic :: Software Development :: Documentation
19
+ Requires-Python: >=3.10
20
+ Requires-Dist: typer>=0.12
21
+ Provides-Extra: dev
22
+ Requires-Dist: pytest>=8; extra == 'dev'
23
+ Requires-Dist: ruff>=0.4; extra == 'dev'
24
+ Description-Content-Type: text/markdown
25
+
26
+ # projectmem
27
+
28
+ `projectmem` gives your projects a readable memory.
29
+
30
+ It records the development story that usually disappears between commits:
31
+ issues, failed attempts, working fixes, decisions, notes, and the files involved.
32
+ The result is a small `.projectmem/` folder that both humans and AI tools can
33
+ read without a vendor-specific integration.
34
+
35
+ Git shows what changed. `projectmem` helps explain what happened, what was
36
+ tried, what failed, and why the current solution exists.
37
+
38
+ ## Why It Exists
39
+
40
+ Project context is expensive to rebuild.
41
+
42
+ When you return to a codebase after days or weeks, you often need to rediscover
43
+ why something was implemented a certain way. AI coding tools have the same
44
+ problem: every new session may scan files, infer history, and repeat analysis
45
+ that was already done before.
46
+
47
+ `projectmem` is designed to reduce that repeated work. Instead of asking a
48
+ person or an AI assistant to reconstruct the full project story from source
49
+ files alone, it keeps a compact, structured memory in Markdown and JSONL.
50
+
51
+ For AI-assisted development, the intended pattern is simple:
52
+
53
+ - read `.projectmem/summary.md` first
54
+ - open detailed issue files only when needed
55
+ - avoid repeating failed approaches that were already recorded
56
+ - spend more context window on the current task instead of rediscovering old
57
+ decisions
58
+
59
+ The exact token savings depend on the project and workflow, but the goal is to
60
+ replace repeated broad scans of tens or hundreds of kilobytes with a concise
61
+ summary targeted to stay under roughly 20 KB. In practical AI workflows, that
62
+ can save a significant percentage of context tokens across repeated sessions,
63
+ especially on long-lived projects.
64
+
65
+ ## What It Captures
66
+
67
+ `projectmem` is intentionally narrow. It is a project logbook for development
68
+ knowledge that does not fit cleanly into commits.
69
+
70
+ It captures:
71
+
72
+ - issues you are investigating
73
+ - hypotheses and attempts
74
+ - whether an attempt worked, failed, or partially helped
75
+ - final fixes
76
+ - architectural or implementation decisions
77
+ - notes and gotchas
78
+ - file references that matter to the story
79
+
80
+ It does not replace Git, issue trackers, documentation, code search, or AI
81
+ memory systems. It complements them by preserving the reasoning and failed paths
82
+ around a project.
83
+
84
+ ## Installation
85
+
86
+ ```bash
87
+ pip install projectmem
88
+ ```
89
+
90
+ This installs two commands:
91
+
92
+ ```bash
93
+ projectmem
94
+ pm
95
+ ```
96
+
97
+ Both commands run the same CLI. `projectmem` is the canonical command; `pm` is a
98
+ short alias for daily use.
99
+
100
+ ## Quick Start
101
+
102
+ Initialize memory inside a project:
103
+
104
+ ```bash
105
+ cd path/to/your-project
106
+ projectmem init
107
+ ```
108
+
109
+ Record the story as you work:
110
+
111
+ ```bash
112
+ pm log "auth tokens expire after 1h instead of 24h"
113
+ pm attempt "bumped JWT_EXPIRY in config.py" --failed
114
+ pm attempt "found hardcoded TTL in middleware" --worked
115
+ pm fix "changed TOKEN_TTL in auth/middleware.py:42"
116
+ pm decision "keep auth middleware stateless so workers can scale horizontally"
117
+ pm note "local test suite requires the test database to be running"
118
+ ```
119
+
120
+ Read the current project memory:
121
+
122
+ ```bash
123
+ pm show
124
+ ```
125
+
126
+ Search previous entries:
127
+
128
+ ```bash
129
+ pm search token
130
+ ```
131
+
132
+ Regenerate the summary from the raw event log:
133
+
134
+ ```bash
135
+ pm regenerate
136
+ ```
137
+
138
+ ## Project Memory Files
139
+
140
+ `projectmem init` creates:
141
+
142
+ ```text
143
+ .projectmem/
144
+ ├── summary.md
145
+ ├── events.jsonl
146
+ ├── issues/
147
+ └── config.toml
148
+ ```
149
+
150
+ File roles:
151
+
152
+ - `.projectmem/summary.md` is the compact memory for humans and AI tools.
153
+ - `.projectmem/events.jsonl` is the append-only raw event log.
154
+ - `.projectmem/issues/` contains per-issue Markdown files for deeper context.
155
+ - `.projectmem/config.toml` stores project-specific settings.
156
+
157
+ By default, `projectmem init` adds `.projectmem/events.jsonl` to `.gitignore`.
158
+ The raw log can contain noisy or sensitive working notes. The generated summary,
159
+ issue files, and config are the parts most teams may choose to commit.
160
+
161
+ ## Commands
162
+
163
+ | Command | Purpose |
164
+ |---|---|
165
+ | `projectmem init` | Create `.projectmem/` in the current project |
166
+ | `pm log <text>` | Start a new issue |
167
+ | `pm attempt <text> --worked` | Record a successful attempt |
168
+ | `pm attempt <text> --failed` | Record a failed attempt |
169
+ | `pm attempt <text> --partial` | Record a partially useful attempt |
170
+ | `pm fix <text>` | Record the fix for the current issue |
171
+ | `pm decision <text>` | Record a project decision |
172
+ | `pm note <text>` | Record a free-form note |
173
+ | `pm show` | Print `.projectmem/summary.md` |
174
+ | `pm search <query>` | Search recorded events |
175
+ | `pm regenerate` | Rebuild the summary from `events.jsonl` |
176
+
177
+ ## AI Workflow
178
+
179
+ Any AI assistant can use `projectmem` without a plugin.
180
+
181
+ At the start of a session, ask the assistant to read:
182
+
183
+ ```text
184
+ .projectmem/summary.md
185
+ ```
186
+
187
+ That file is designed to provide the current project story: recent issues,
188
+ outcomes, known gotchas, decisions, and key files. If more detail is needed, the
189
+ assistant can open the relevant file under `.projectmem/issues/`.
190
+
191
+ This keeps the memory portable across tools such as Claude Code, Cursor, Codex,
192
+ custom agents, and plain terminal workflows. The storage is ordinary Markdown
193
+ and JSONL.
194
+
195
+ ## Design Principles
196
+
197
+ - Local-first: no network calls, no cloud service, no telemetry.
198
+ - Human-readable: Markdown and JSONL only.
199
+ - AI-tool-agnostic: no dependency on one assistant or editor.
200
+ - Append-only raw log: the original event history remains available.
201
+ - Compact derived summary: the main AI-readable file stays small.
202
+ - Small CLI surface: a few commands focused on daily development memory.
203
+
204
+ ## Development Status
205
+
206
+ `projectmem` is in early development. Version `0.0.1` is the initial package
207
+ release for testing and name reservation. The first stable public workflow will
208
+ come after real use across several projects.
209
+
210
+ ## License
211
+
212
+ MIT