feat(toolpath): add meta.kind path-kind field; tag conversation paths "convo"#85
feat(toolpath): add meta.kind path-kind field; tag conversation paths "convo"#85ben-emp wants to merge 3 commits into
Conversation
|
🔍 Preview deployed: https://bd47bb55.toolpath.pages.dev |
akesling
left a comment
There was a problem hiding this comment.
Update the enum value name and then LGTM. We may also want a kind version and need to follow up with a specification as to what fields go where and why to reflect what we're doing in our transformations and help Claude stay aligned (e.g. we should be able to point Claude at this format spec and have it find bugs, fix things, not paint too much outside the lines).
akesling
left a comment
There was a problem hiding this comment.
LGTM - take a look at comment about maybe switching to an enum
|
|
||
| /// [`PathMeta::kind`] value for a path derived from an AI coding conversation. | ||
| /// See the Toolpath RFC's "Document Kind" section. | ||
| pub const PATH_KIND_AGENT_CODING_SESSION: &str = "agent-coding-session"; |
There was a problem hiding this comment.
What would we think of making this a non-exhaustive enum?
Maybe something like "KnownKind"?
Then checks could match and evolve as we add more. We've already talked about GitHub PRs, git branches, etc. so this feels like a reasonable architectural structure.
… "convo"
New optional `meta.kind` on `Path` (`PathMeta::kind` + the
`PATH_KIND_CONVERSATION` constant), plumbed through the JSONL form. Every
conversation -> Path derivation now sets `meta.kind = "convo"` — the shared
`toolpath_convo::derive_path` and each conversation provider crate's own.
Documented in the RFC ("Document Kind") and the JSON Schema. Additive; no
version bumps yet.
Renames the kind value `"convo"` to `"agent-coding-session"` and the constant `PATH_KIND_CONVERSATION` to `PATH_KIND_AGENT_CODING_SESSION`. Updates schema, RFC, CHANGELOG, CLAUDE.md, and all derive crates + tests.
The `kind` value flips from the short name `"agent-coding-session"` to the full hosted-spec URI `"https://toolpath.dev/kinds/agent-coding-session/v1.0.0"` (semver-versioned, immutable per URI). The constant `PATH_KIND_AGENT_CODING_SESSION` carries the URI. Adds the `site/kinds/` hierarchy: a registry index at `/kinds/`, a per-kind landing page at `/kinds/agent-coding-session/`, and the versioned spec at `/kinds/agent-coding-session/v1.0.0/` with a sibling `schema.json` (additive JSON Schema fragment, served via 11ty passthrough). The kind contract moves out of RFC.md into the spec page; the RFC now just points at the registry. Schema description on `pathMeta.kind` updated to declare URI form and link to the registry.
d8b26de to
94f7387
Compare
Adds an optional
meta.kindfield toPath(PathMeta::kind+ aPATH_KIND_CONVERSATIONconstant), so renderers and parsers can recognize a path’s shape. Plumbed through the JSONL form alongsidetitle/source.The one defined value is
"convo", and every conversation →Pathderivation now sets it (the sharedtoolpath_convo::derive_pathand each conversation provider crate). Documented in the RFC ("Document Kind") and the JSON Schema. Additive — existing documents parse and validate unchanged. No version bumps yet.Need help on this PR? Tag
@codesmithwith what you need.