Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
"name": "project-knowledge-capture",
"source": "./",
"description": "Capture meetings, experiments, discoveries, and decisions into OKF; materialize WikiTicket work into a durable knowledge graph. Works in Claude Code and Grok Build.",
"version": "0.9.4",
"version": "0.9.5",
"author": {
"name": "Rick Hightower"
},
Expand Down
2 changes: 1 addition & 1 deletion .claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "project-knowledge-capture",
"version": "0.9.4",
"version": "0.9.5",
"description": "Project Knowledge Capture: meetings, experiments, decisions, TicketLink/WikiTicket work, and project-memory nouns into a durable OKF knowledge graph. Multi-host bindings and write isolation for shared second brains.",
"author": {
"name": "Rick Hightower",
Expand Down
2 changes: 1 addition & 1 deletion .codex-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "project-knowledge-capture",
"version": "0.9.4",
"version": "0.9.5",
"description": "Project Knowledge Capture: meetings, experiments, decisions, TicketLink/WikiTicket work, and project-memory nouns into a durable OKF knowledge graph. Multi-host bindings and write isolation for shared second brains.",
"author": {
"name": "Rick Hightower",
Expand Down
2 changes: 1 addition & 1 deletion .cursor-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "project-knowledge-capture",
"version": "0.9.4",
"version": "0.9.5",
"description": "Project Knowledge Capture: meetings, experiments, decisions, TicketLink/WikiTicket work, and project-memory nouns into a durable OKF knowledge graph. Multi-host bindings and write isolation for shared second brains.",
"author": {
"name": "Rick Hightower"
Expand Down
4 changes: 2 additions & 2 deletions .grok-plugin/marketplace.json
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
{
"name": "pkc-plugin-marketplace",
"description": "Optional native Grok marketplace metadata. Grok Build already loads Claude plugins with zero config; this file pins identity for Grok marketplace listings.",
"version": "0.9.4",
"version": "0.9.5",
"plugins": [
{
"name": "project-knowledge-capture",
"source": ".",
"description": "Project Knowledge Capture \u2014 meetings, experiments, decisions \u2192 OKF knowledge graph. Claude-compatible.",
"version": "0.9.4",
"version": "0.9.5",
"compatibility": {
"claude_plugin": true,
"zero_config": true
Expand Down
4 changes: 4 additions & 0 deletions .work/todo.jsonl
Original file line number Diff line number Diff line change
Expand Up @@ -124,3 +124,7 @@
{"actor":"claude-code","ev":"01M2XCVAWF9Y1Q9RC9DSSVG1W5","item":"01M2XCVAWFZ005YCP1VDQX0GNV","op":"create","set":{"body":"PKC_RG_PATH / OKF_RG_PATH pointing at a missing or non-executable path silently falls through to whatever rg is on PATH. research-graph fails closed on the same variables, so one env var means two things. Make find_rg fail closed; document it in the setup skill, the retrieval-ladder design, and CLAUDE.md.","kind":"ops","level":"task","milestone":"v0.9.5","priority":"P2","status":"todo","title":"find_rg fails closed on an unusable override"},"ts":"2026-09-19T17:53:56Z"}
{"actor":"claude-code","ev":"01M2XCVAY82D8XJG8B5VFSTY6P","item":"01M2XCVAY85DP4XJD8F2Y5CV6G","op":"create","set":{"body":"The UserPromptSubmit auto-context hook still injects the ranked-nodes pack markdown (with the seed body) into the parent context on every Feature mention, which is exactly what the retrieval-isolation rule and /pkc-retrieve forbid. Inject the pkc_pack --summary card with a 2-3 sentence seed excerpt instead: same shape the knowledge-retriever returns, a fraction of the tokens.","kind":"feature","level":"story","milestone":"v0.9.5","priority":"P2","status":"todo","title":"Auto-context hook injects the summary card, not pack bodies"},"ts":"2026-09-19T17:53:56Z"}
{"actor":"claude-code","ev":"01M2XDNSSHMC9N705H9GV8VB1B","item":"01M2XDNSSH9CY0BYKQCB87E9A3","op":"create","set":{"body":"The summary-card assertions added to .github/workflows/ci.yml in v0.9.4 embed multi-line python3 -c blocks with lines at column 1 inside a run: | literal block, which ends the block scalar and makes the workflow unparseable. Every ci.yml run since Sep 12 failed at startup with zero jobs, so the test and okf-interop jobs have not executed in CI for a week. Collapse the blocks to single-line python3 -c, the style the file already uses.","discovered_during":"01M2XCVATPVGXTMP55VA9SB0B1","kind":"bug","level":"task","milestone":"v0.9.5","priority":"P1","status":"todo","title":"ci.yml unparseable since v0.9.4: test job never runs in CI","unplanned":true},"ts":"2026-09-19T18:08:23Z"}
{"actor":"claude-code","ev":"01M2XDT6WJ98T55GK45972R1BR","item":"01M2XCVATPVGXTMP55VA9SB0B1","op":"close","set":{"resolution":"shipped in v0.9.5 via #81","status":"done"},"ts":"2026-09-19T18:10:47Z"}
{"actor":"claude-code","ev":"01M2XDT6Y8NRP4DMNB1WJKNZXX","item":"01M2XCVAWFZ005YCP1VDQX0GNV","op":"close","set":{"resolution":"shipped in v0.9.5 via #81","status":"done"},"ts":"2026-09-19T18:10:47Z"}
{"actor":"claude-code","ev":"01M2XDT704G4WFH1PWBJFJF5W8","item":"01M2XCVAY85DP4XJD8F2Y5CV6G","op":"close","set":{"resolution":"shipped in v0.9.5 via #81","status":"done"},"ts":"2026-09-19T18:10:47Z"}
{"actor":"claude-code","ev":"01M2XDT71WQRN2VGPQJG1BA7G1","item":"01M2XDNSSH9CY0BYKQCB87E9A3","op":"close","set":{"resolution":"shipped in v0.9.5 via #81","status":"done"},"ts":"2026-09-19T18:10:47Z"}
10 changes: 10 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,18 @@

## Unreleased

## 0.9.5 — 2026-09-19

Retrieval-ladder parity patch from the v0.9.4 review. Closes #78, #79, #80,
#82 via #81.

### Fixed

- **`ci.yml` parses again** (#82). The v0.9.4 `--summary` assertions embedded
multi-line `python3 -c` blocks at column 1 inside a `run: |` block; the
workflow failed at startup with zero jobs on every run since 2026-09-12, so
`test` and `okf-interop` had not executed in CI for a week. Collapsed to
single-line `python3 -c`; assertions unchanged.
- **Search parity across engines** (#78). The filename stem no longer enters the
search haystack (`pkc_search.py`; `pkc_index.py` hay column). A titleless
concept whose filename matched the query was found by `scan` and the index
Expand Down
2 changes: 1 addition & 1 deletion CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ Deterministic Python owns paths, frontmatter, idempotency, catalogs, and the log
4. Default context pack: 2 hops / ~20 nodes; tiny pack: 1 hop / ≤8 nodes.
5. Retrieval isolation: spawn `knowledge-retriever` (`/pkc-retrieve`) for Q&A context. Do not run `pkc_search` / `pkc_pack` inline in the parent turn.
6. After any capture: refresh catalogs + append one line to `log.md`.
7. Releases bump the version in **six** places: `.claude-plugin/plugin.json`, `.claude-plugin/marketplace.json`, `.grok-plugin/marketplace.json`, `marketplace.json`, `package.json`, and the README table — plus a `CHANGELOG.md` entry.
7. Releases bump the version in **eight** places: `.claude-plugin/plugin.json`, `.claude-plugin/marketplace.json`, `.grok-plugin/marketplace.json`, `.codex-plugin/plugin.json`, `.cursor-plugin/plugin.json`, root `plugin.json`, `marketplace.json`, `package.json`, and the README table — plus a `CHANGELOG.md` entry. `TestManifestVersions` fails on any drift between the manifests.
8. After script changes: `python3 tests/test_pkc.py` **and** `npm run validate`.
9. Secrets/PII: capture paths run through `scrub_text()`; keep new ingestion paths (transcripts, PRs, threads) scrubbed by default.

Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Works on **Claude Code**, **Grok Build**, **Codex**, **Agent Plugins 1.0**, **Gr
|---|---|
| **Plugin name** | `project-knowledge-capture` |
| **Repo** | [SpillwaveSolutions/project-knowledge-capture](https://github.com/SpillwaveSolutions/project-knowledge-capture) |
| **Version** | 0.9.4 |
| **Version** | 0.9.5 |
| **License** | MIT |
| **Nouns this plugin owns** | Meeting, Experiment, Discovery, Assumption, Question, Feature, Requirement, Specification, Design, Release, CodeChange, Package, Risk, Acceptance, DecisionRecord, TicketLink, Epic, Story, Task, Subtask, Bug, Branch, Project, Playbook, Runbook, Reference |

Expand Down
29 changes: 4 additions & 25 deletions docs/roadmap.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
wiki_key: roadmap
doc_type: roadmap
truth_state: current
source_hash: cbc0ec15
generated_at: 2026-09-19T18:08:23Z
source_hash: f503417c
generated_at: 2026-09-19T18:10:47Z
---

<!-- GENERATED by worklog roadmap-render. DO NOT EDIT. -->
Expand All @@ -13,7 +13,7 @@ generated_at: 2026-09-19T18:08:23Z

# Roadmap

_1 epic(s) in flight, 8 open item(s), 0 blocked, 0 unclassified._
_1 epic(s) in flight, 4 open item(s), 0 blocked, 0 unclassified._

## Now

Expand All @@ -35,10 +35,6 @@ PKC's capabilities are reachable only from Claude Code and Grok Build because th
| # | Item | Type | Priority | Status | Blocked by |
|---|---|---|---|---|---|
| 01M0SZFF | Own project-memory nouns including TicketLink and work types | story | P1 | todo | — |
| 01M2XCVA | Search parity: keep the filename stem out of the haystack | story | P1 | todo | — |
| 01M2XDNS | ci.yml unparseable since v0.9.4: test job never runs in CI | task | P1 | todo | — |
| 01M2XCVA | find_rg fails closed on an unusable override | task | P2 | todo | — |
| 01M2XCVA | Auto-context hook injects the summary card, not pack bodies | story | P2 | todo | — |

## Later

Expand All @@ -55,15 +51,6 @@ _Nothing here._
| [16](https://github.com/SpillwaveSolutions/project-knowledge-capture/issues/16) | Expose validate over MCP | story | P2 | todo | — |
| [17](https://github.com/SpillwaveSolutions/project-knowledge-capture/issues/17) | Expose capture over MCP | story | P2 | todo | — |

### v0.9.5

| # | Item | Type | Priority | Status | Blocked by |
|---|---|---|---|---|---|
| 01M2XCVA | Search parity: keep the filename stem out of the haystack | story | P1 | todo | — |
| 01M2XDNS | ci.yml unparseable since v0.9.4: test job never runs in CI | task | P1 | todo | — |
| 01M2XCVA | find_rg fails closed on an unusable override | task | P2 | todo | — |
| 01M2XCVA | Auto-context hook injects the summary card, not pack bodies | story | P2 | todo | — |

## Visual roadmap

### Dependency graph
Expand All @@ -75,15 +62,11 @@ graph TD
01KZ75R3M6BYQ643NKDCCSEEZC["📦 Expose validate over MCP"]
01KZ75R3S2X1G4PCTGMMSR8BWA["📦 Expose capture over MCP"]
01M0SZFFPWEVN9YX9D9RYZ1ZC1["📦 Own project-memory nouns inclu"]
01M2XCVATPVGXTMP55VA9SB0B1["🐛 Search parity keep the filenam"]
01M2XCVAWFZ005YCP1VDQX0GNV["🔧 find_rg fails closed on an unu"]
01M2XCVAY85DP4XJD8F2Y5CV6G["📦 Auto-context hook injects the"]
01M2XDNSSH9CY0BYKQCB87E9A3["🐛 ci.yml unparseable since v0.9."]
01KZ75NQCMYGFYRCVJATEBVBRB --> 01KZ75R3EXEG4GVGRP2S9CCKZ4
01KZ75NQCMYGFYRCVJATEBVBRB --> 01KZ75R3M6BYQ643NKDCCSEEZC
01KZ75NQCMYGFYRCVJATEBVBRB --> 01KZ75R3S2X1G4PCTGMMSR8BWA
classDef todo fill:#f4f4f4,stroke:#999999
class 01KZ75NQCMYGFYRCVJATEBVBRB,01KZ75R3EXEG4GVGRP2S9CCKZ4,01KZ75R3M6BYQ643NKDCCSEEZC,01KZ75R3S2X1G4PCTGMMSR8BWA,01M0SZFFPWEVN9YX9D9RYZ1ZC1,01M2XCVATPVGXTMP55VA9SB0B1,01M2XCVAWFZ005YCP1VDQX0GNV,01M2XCVAY85DP4XJD8F2Y5CV6G,01M2XDNSSH9CY0BYKQCB87E9A3 todo
class 01KZ75NQCMYGFYRCVJATEBVBRB,01KZ75R3EXEG4GVGRP2S9CCKZ4,01KZ75R3M6BYQ643NKDCCSEEZC,01KZ75R3S2X1G4PCTGMMSR8BWA,01M0SZFFPWEVN9YX9D9RYZ1ZC1 todo
```

### Hierarchy
Expand All @@ -95,10 +78,6 @@ graph TD
01KZ75R3M6BYQ643NKDCCSEEZC["📦 Expose validate over MCP"]
01KZ75R3S2X1G4PCTGMMSR8BWA["📦 Expose capture over MCP"]
01M0SZFFPWEVN9YX9D9RYZ1ZC1["📦 Own project-memory nouns inclu"]
01M2XCVATPVGXTMP55VA9SB0B1["🐛 Search parity keep the filenam"]
01M2XCVAWFZ005YCP1VDQX0GNV["🔧 find_rg fails closed on an unu"]
01M2XCVAY85DP4XJD8F2Y5CV6G["📦 Auto-context hook injects the"]
01M2XDNSSH9CY0BYKQCB87E9A3["🐛 ci.yml unparseable since v0.9."]
01KZ75NQCMYGFYRCVJATEBVBRB --> 01KZ75R3EXEG4GVGRP2S9CCKZ4
01KZ75NQCMYGFYRCVJATEBVBRB --> 01KZ75R3M6BYQ643NKDCCSEEZC
01KZ75NQCMYGFYRCVJATEBVBRB --> 01KZ75R3S2X1G4PCTGMMSR8BWA
Expand Down
86 changes: 86 additions & 0 deletions docs/roadmap/2026-09-19_v0.9.5-release.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
---
wiki_key: roadmap-snapshot/2026-09-19_v0.9.5-release
doc_type: roadmap-snapshot
truth_state: snapshot
source_hash: f503417c
generated_at: 2026-09-19T18:10:47Z
date: 2026-09-19
name: v0.9.5-release
---

<!-- GENERATED by worklog roadmap-render. DO NOT EDIT. -->

> This file is generated from `.work/todo.jsonl`. Edits will be overwritten.
> To change the roadmap, change the work items: `worklog add|update|close`.

# Roadmap

_1 epic(s) in flight, 4 open item(s), 0 blocked, 0 unclassified._

## Now

_Nothing here._

## Next

### MCP server mode · P2 · 0 of 3 done · → v0.8.0
PKC's capabilities are reachable only from Claude Code and Grok Build because they are packaged as skills. Exposing pack, validate and capture over MCP makes the same knowledge graph available to any MCP host without duplicating the logic.

| # | Item | Type | Priority | Status | Blocked by |
|---|---|---|---|---|---|
| [15](https://github.com/SpillwaveSolutions/project-knowledge-capture/issues/15) | Expose pack over MCP | story | P2 | todo | — |
| [16](https://github.com/SpillwaveSolutions/project-knowledge-capture/issues/16) | Expose validate over MCP | story | P2 | todo | — |
| [17](https://github.com/SpillwaveSolutions/project-knowledge-capture/issues/17) | Expose capture over MCP | story | P2 | todo | — |

### (no epic)

| # | Item | Type | Priority | Status | Blocked by |
|---|---|---|---|---|---|
| 01M0SZFF | Own project-memory nouns including TicketLink and work types | story | P1 | todo | — |

## Later

_Nothing here._

## Milestones

### v0.8.0

| # | Item | Type | Priority | Status | Blocked by |
|---|---|---|---|---|---|
| 01M0SZFF | Own project-memory nouns including TicketLink and work types | story | P1 | todo | — |
| [15](https://github.com/SpillwaveSolutions/project-knowledge-capture/issues/15) | Expose pack over MCP | story | P2 | todo | — |
| [16](https://github.com/SpillwaveSolutions/project-knowledge-capture/issues/16) | Expose validate over MCP | story | P2 | todo | — |
| [17](https://github.com/SpillwaveSolutions/project-knowledge-capture/issues/17) | Expose capture over MCP | story | P2 | todo | — |

## Visual roadmap

### Dependency graph

```mermaid
graph TD
01KZ75NQCMYGFYRCVJATEBVBRB["📦 MCP server mode"]
01KZ75R3EXEG4GVGRP2S9CCKZ4["📦 Expose pack over MCP"]
01KZ75R3M6BYQ643NKDCCSEEZC["📦 Expose validate over MCP"]
01KZ75R3S2X1G4PCTGMMSR8BWA["📦 Expose capture over MCP"]
01M0SZFFPWEVN9YX9D9RYZ1ZC1["📦 Own project-memory nouns inclu"]
01KZ75NQCMYGFYRCVJATEBVBRB --> 01KZ75R3EXEG4GVGRP2S9CCKZ4
01KZ75NQCMYGFYRCVJATEBVBRB --> 01KZ75R3M6BYQ643NKDCCSEEZC
01KZ75NQCMYGFYRCVJATEBVBRB --> 01KZ75R3S2X1G4PCTGMMSR8BWA
classDef todo fill:#f4f4f4,stroke:#999999
class 01KZ75NQCMYGFYRCVJATEBVBRB,01KZ75R3EXEG4GVGRP2S9CCKZ4,01KZ75R3M6BYQ643NKDCCSEEZC,01KZ75R3S2X1G4PCTGMMSR8BWA,01M0SZFFPWEVN9YX9D9RYZ1ZC1 todo
```

### Hierarchy

```mermaid
graph TD
01KZ75NQCMYGFYRCVJATEBVBRB["📦 MCP server mode"]
01KZ75R3EXEG4GVGRP2S9CCKZ4["📦 Expose pack over MCP"]
01KZ75R3M6BYQ643NKDCCSEEZC["📦 Expose validate over MCP"]
01KZ75R3S2X1G4PCTGMMSR8BWA["📦 Expose capture over MCP"]
01M0SZFFPWEVN9YX9D9RYZ1ZC1["📦 Own project-memory nouns inclu"]
01KZ75NQCMYGFYRCVJATEBVBRB --> 01KZ75R3EXEG4GVGRP2S9CCKZ4
01KZ75NQCMYGFYRCVJATEBVBRB --> 01KZ75R3M6BYQ643NKDCCSEEZC
01KZ75NQCMYGFYRCVJATEBVBRB --> 01KZ75R3S2X1G4PCTGMMSR8BWA
```
2 changes: 1 addition & 1 deletion marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
"name": "project-knowledge-capture",
"source": "./",
"description": "Project Knowledge Capture \u2014 OKF knowledge graph from meetings, experiments, and WikiTicket",
"version": "0.9.4"
"version": "0.9.5"
}
]
}
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "project-knowledge-capture",
"version": "0.9.4",
"version": "0.9.5",
"private": true,
"description": "Project Knowledge Capture \u2014 Claude Code / Grok Build plugin (docs preview)",
"scripts": {
Expand Down
2 changes: 1 addition & 1 deletion plugin.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "project-knowledge-capture",
"version": "0.9.4",
"version": "0.9.5",
"description": "Project Knowledge Capture: meetings, experiments, decisions, TicketLink/WikiTicket work, and project-memory nouns into a durable OKF knowledge graph. Multi-host bindings and write isolation for shared second brains.",
"author": {
"name": "Rick Hightower",
Expand Down
Loading