project-mgr 0.1.4 → 0.1.6

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
@@ -1,6 +1,16 @@
1
1
  # Changelog
2
2
 
3
- ## Unreleased
3
+ ## 0.1.6 - 2026-08-03
4
+
5
+ ### Fixed
6
+
7
+ - Allowed `history` to query recent entries across all projects without `--project`.
8
+
9
+ ## 0.1.5 - 2026-08-03
10
+
11
+ ### Changed
12
+
13
+ - Matched the Skill picker label to the project name, `project-mgr`, and documented explicit invocation.
4
14
 
5
15
  ## 0.1.4 - 2026-08-03
6
16
 
package/README.md CHANGED
@@ -33,7 +33,7 @@ PMGR_DB_PATH=/absolute/path/projects.sqlite npx --yes --package project-mgr pmgr
33
33
 
34
34
  ## Install the Agent Skill
35
35
 
36
- The repository includes `skills/project-mgr`, which guides compatible AI agents to add, import, query, and export status records. Install it with the [skills CLI](https://skills.sh/docs/cli):
36
+ The repository includes the `project-mgr` skill, shown as **project-mgr** in skill pickers. It guides compatible AI agents to add, import, query, and export local project status history. Install it with the [skills CLI](https://skills.sh/docs/cli):
37
37
 
38
38
  ```bash
39
39
  npx skills add deanplus/project-manager
@@ -41,9 +41,28 @@ npx skills add deanplus/project-manager
41
41
 
42
42
  The installer detects supported agents and asks where to install the skill. No separate `project-mgr` installation is required: the skill runs the CLI through `npx`. Restart or reload the selected agent after installation.
43
43
 
44
- The skill uses the same `PMGR_DB_PATH` behavior as the CLI: it defaults to `~/.local/share/project-mgr/project-mgr.sqlite`; set an absolute path to work in another ledger. For manual or exploratory work, use a dedicated database such as `PMGR_DB_PATH=/tmp/project-mgr-skill-test.sqlite` rather than the default ledger.
44
+ ### Invoke the skill
45
+
46
+ In Codex, write `$project-mgr` in the prompt. Alternatively, type `/pro` and select **project-mgr** from the picker. In other agents, use their explicit skill syntax or select `project-mgr` from the skills menu.
47
+
48
+ Use normal language after the skill name; the agent translates the request into CLI commands. For example:
49
+
50
+ ```text
51
+ Use $project-mgr to show the current status and latest 10 updates for project-mgr.
52
+
53
+ Use $project-mgr to record this update for project-mgr: active; released the Agent Skill;
54
+ next, collect user feedback.
45
55
 
46
- Then ask the agent, for example: `Use project-mgr to add an active status after checking its current status.`
56
+ Use $project-mgr to record these updates: api is blocked by authentication; web is active
57
+ and the dashboard is complete.
58
+
59
+ Use $project-mgr with PMGR_DB_PATH=/tmp/project-mgr-test.sqlite to add a test update,
60
+ then show its history.
61
+ ```
62
+
63
+ The agent should query before writing and ask for missing required values such as the project name, status, or summary.
64
+
65
+ The skill uses the same `PMGR_DB_PATH` behavior as the CLI: it defaults to `~/.local/share/project-mgr/project-mgr.sqlite`; set an absolute path to work in another ledger. For manual or exploratory work, use a dedicated database such as `PMGR_DB_PATH=/tmp/project-mgr-skill-test.sqlite` rather than the default ledger.
47
66
 
48
67
  ## Build from source
49
68
 
@@ -138,6 +157,9 @@ pnpm start history \
138
157
  --limit 20 \
139
158
  --offset 0
140
159
 
160
+ # Recent history across every project.
161
+ pnpm start history --limit 20 --json
162
+
141
163
  pnpm start at \
142
164
  --project project-mgr \
143
165
  --at 2026-08-03T12:00:00+08:00 \
@@ -191,12 +213,12 @@ Unknown fields, unknown CLI options, extra positional arguments, invalid statuse
191
213
 
192
214
  ## Query and export
193
215
 
194
- | Command | Purpose | Key options |
195
- | --------- | ----------------------------------------------- | ------------------------------------------------------------------ |
196
- | `current` | Current status for all projects or one project | `--project`, `--json` |
197
- | `history` | One project's history, newest first | `--project`, `--since`, `--until`, `--limit`, `--offset`, `--json` |
198
- | `at` | The latest status at or before a specified time | `--project`, `--at`, `--json` |
199
- | `export` | Export all records or one project's records | `--project`, `--format json\|jsonl` |
216
+ | Command | Purpose | Key options |
217
+ | --------- | ----------------------------------------------------- | ------------------------------------------------------------------ |
218
+ | `current` | Current status for all projects or one project | `--project`, `--json` |
219
+ | `history` | History for all projects or one project, newest first | `--project`, `--since`, `--until`, `--limit`, `--offset`, `--json` |
220
+ | `at` | The latest status at or before a specified time | `--project`, `--at`, `--json` |
221
+ | `export` | Export all records or one project's records | `--project`, `--format json\|jsonl` |
200
222
 
201
223
  All six actions can also use the compatible `status <action>` form, for example `pmgr status export`. Human-readable multi-record results list project, status, occurrence time, and summary, or `No entries found.` when empty. `add`, `import`, `current`, `history`, and `at` support `--json`; `export` uses `--format` to select its format.
202
224
 
package/README_CN.md CHANGED
@@ -33,7 +33,7 @@ PMGR_DB_PATH=/absolute/path/projects.sqlite npx --yes --package project-mgr pmgr
33
33
 
34
34
  ## 安装 Agent Skill
35
35
 
36
- 仓库包含 `skills/project-mgr`,用于指导兼容 Skills 的 AI Agent 新增、导入、查询和导出项目状态记录。通过 [skills CLI](https://skills.sh/docs/cli) 安装:
36
+ 仓库包含 `project-mgr` Skill,在 Skill 选择器中显示为 **project-mgr**。它用于指导兼容 Skills 的 AI Agent 新增、导入、查询和导出本地项目状态历史。通过 [skills CLI](https://skills.sh/docs/cli) 安装:
37
37
 
38
38
  ```bash
39
39
  npx skills add deanplus/project-manager
@@ -41,9 +41,28 @@ npx skills add deanplus/project-manager
41
41
 
42
42
  安装器会检测支持的 Agent,并询问安装目标。无需单独安装 `project-mgr`:该 Skill 会通过 `npx` 运行 CLI。安装后重启或重新加载所选 Agent。
43
43
 
44
- 该 Skill 与 CLI 使用相同的 `PMGR_DB_PATH` 规则:默认使用 `~/.local/share/project-mgr/project-mgr.sqlite`;如需使用其他账本,请设置绝对路径。手工或探索性操作请使用独立数据库,例如 `PMGR_DB_PATH=/tmp/project-mgr-skill-test.sqlite`,避免写入默认账本。
44
+ ### 调用 Skill
45
+
46
+ 在 Codex 的提示词中直接写 `$project-mgr`。也可以输入 `/pro`,然后在选择器中选择 **project-mgr**。其他 Agent 请使用其显式 Skill 语法,或从 Skills 菜单选择 `project-mgr`。
47
+
48
+ Skill 名称后直接使用自然语言即可,Agent 会把请求转换成 CLI 命令。例如:
49
+
50
+ ```text
51
+ 使用 $project-mgr 查询 project-mgr 的当前状态和最近 10 条更新。
52
+
53
+ 使用 $project-mgr 记录 project-mgr 的状态:active;已发布 Agent Skill;
54
+ 下一步收集用户反馈。
45
55
 
46
- 随后可向 Agent 提出,例如:`使用 project-mgr,在查询当前状态后新增一条 active 状态。`
56
+ 使用 $project-mgr 批量记录状态:api 因认证问题 blocked;web 为 active,
57
+ dashboard 已完成。
58
+
59
+ 使用 $project-mgr 和 PMGR_DB_PATH=/tmp/project-mgr-test.sqlite 添加一条测试状态,
60
+ 然后查询其历史。
61
+ ```
62
+
63
+ Agent 应在写入前先查询;如果缺少项目名、状态或摘要等必填信息,它会向用户确认。
64
+
65
+ 该 Skill 与 CLI 使用相同的 `PMGR_DB_PATH` 规则:默认使用 `~/.local/share/project-mgr/project-mgr.sqlite`;如需使用其他账本,请设置绝对路径。手工或探索性操作请使用独立数据库,例如 `PMGR_DB_PATH=/tmp/project-mgr-skill-test.sqlite`,避免写入默认账本。
47
66
 
48
67
  ## 从源码构建
49
68
 
@@ -138,6 +157,9 @@ pnpm start history \
138
157
  --limit 20 \
139
158
  --offset 0
140
159
 
160
+ # 查询全部项目的近期历史。
161
+ pnpm start history --limit 20 --json
162
+
141
163
  pnpm start at \
142
164
  --project project-mgr \
143
165
  --at 2026-08-03T12:00:00+08:00 \
@@ -191,12 +213,12 @@ pnpm start import --file statuses.jsonl --json
191
213
 
192
214
  ## 查询与导出
193
215
 
194
- | 命令 | 用途 | 主要选项 |
195
- | --------- | -------------------------- | ------------------------------------------------------------------ |
196
- | `current` | 所有项目或单项目的当前状态 | `--project`、`--json` |
197
- | `history` | 单项目历史,最新记录在前 | `--project`、`--since`、`--until`、`--limit`、`--offset`、`--json` |
198
- | `at` | 指定时间点及之前的最后状态 | `--project`、`--at`、`--json` |
199
- | `export` | 导出全部或单项目记录 | `--project`、`--format json\|jsonl` |
216
+ | 命令 | 用途 | 主要选项 |
217
+ | --------- | ---------------------------------- | ------------------------------------------------------------------ |
218
+ | `current` | 所有项目或单项目的当前状态 | `--project`、`--json` |
219
+ | `history` | 全部或单个项目的历史,最新记录在前 | `--project`、`--since`、`--until`、`--limit`、`--offset`、`--json` |
220
+ | `at` | 指定时间点及之前的最后状态 | `--project`、`--at`、`--json` |
221
+ | `export` | 导出全部或单项目记录 | `--project`、`--format json\|jsonl` |
200
222
 
201
223
  全部六个 action 仍可使用 `status <action>` 的兼容形式,例如 `pmgr status export`。人类可读的多条结果按“项目、状态、发生时间、摘要”输出;为空时输出 `No entries found.`。`add`、`import`、`current`、`history`、`at` 支持 `--json`;`export` 由 `--format` 控制格式。
202
224
 
package/dist/cli.js CHANGED
@@ -165,7 +165,7 @@ export function run(argv, write = process.stdout.write.bind(process.stdout)) {
165
165
  output(current(db, stringFlag(flags, "project")), json, write);
166
166
  break;
167
167
  case "history":
168
- output(history(db, stringFlag(flags, "project", true), {
168
+ output(history(db, stringFlag(flags, "project"), {
169
169
  since: stringFlag(flags, "since") &&
170
170
  parseTime(stringFlag(flags, "since"), "since"),
171
171
  until: stringFlag(flags, "until") &&
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "project-mgr",
3
- "version": "0.1.4",
3
+ "version": "0.1.6",
4
4
  "description": "Local-first append-only project status ledger",
5
5
  "type": "module",
6
6
  "bin": {
@@ -3,7 +3,7 @@ name: project-mgr
3
3
  description: Manage project status with the local-first project-mgr CLI. Use when an AI agent needs to add an append-only project update, import status records, query current or historical project state, or export a status ledger.
4
4
  ---
5
5
 
6
- # Project Mgr
6
+ # project-mgr
7
7
 
8
8
  Use `npx --yes --package project-mgr pmgr`. In a source checkout, use `pnpm pmgr` instead.
9
9
 
@@ -26,6 +26,7 @@ npx --yes --package project-mgr pmgr add --project my-project --status active --
26
26
  # Query current state, history, or state at a time.
27
27
  npx --yes --package project-mgr pmgr current --project my-project --json
28
28
  npx --yes --package project-mgr pmgr history --project my-project --limit 20 --json
29
+ npx --yes --package project-mgr pmgr history --limit 20 --json
29
30
  npx --yes --package project-mgr pmgr at --project my-project --at 2026-08-03T12:00:00+08:00 --json
30
31
 
31
32
  # Import validated JSON/JSONL, or export portable records.
@@ -1,4 +1,4 @@
1
1
  interface:
2
- display_name: "Project Manager"
3
- short_description: "Manage local project status records safely"
4
- default_prompt: "Use $project-mgr to add and inspect this project status."
2
+ display_name: "project-mgr"
3
+ short_description: "Append and query local project status history"
4
+ default_prompt: "Use $project-mgr to record or query this project status history."
package/src/cli.ts CHANGED
@@ -210,7 +210,7 @@ export function run(
210
210
  break;
211
211
  case "history":
212
212
  output(
213
- history(db, stringFlag(flags, "project", true), {
213
+ history(db, stringFlag(flags, "project"), {
214
214
  since:
215
215
  stringFlag(flags, "since") &&
216
216
  parseTime(stringFlag(flags, "since"), "since"),
package/test/core.test.ts CHANGED
@@ -314,6 +314,12 @@ test("CLI supports add, import, reads, errors, and export formats", () => {
314
314
  execute(["status", "history", "--project", "cli", "--json"]),
315
315
  /added/,
316
316
  );
317
+ assert.deepEqual(
318
+ JSON.parse(execute(["history", "--limit", "2", "--json"])).map(
319
+ (item: { project: string }) => item.project,
320
+ ),
321
+ ["human", "cli"],
322
+ );
317
323
  assert.equal(
318
324
  JSON.parse(
319
325
  execute([
@@ -366,7 +372,6 @@ test("CLI supports add, import, reads, errors, and export formats", () => {
366
372
  () => execute(["status", "history", "--project", "cli", "--limit", "1.5"]),
367
373
  ValidationError,
368
374
  );
369
- assert.throws(() => execute(["status", "history"]), ValidationError);
370
375
  assert.throws(() => execute(["status", "add", "--project"]), ValidationError);
371
376
  assert.throws(
372
377
  () =>