Skip to content

feat(toolpath): add meta.kind path-kind field; tag conversation paths "convo"#85

Open
ben-emp wants to merge 3 commits into
mainfrom
ben/kind-metadata-field
Open

feat(toolpath): add meta.kind path-kind field; tag conversation paths "convo"#85
ben-emp wants to merge 3 commits into
mainfrom
ben/kind-metadata-field

Conversation

@ben-emp
Copy link
Copy Markdown
Collaborator

@ben-emp ben-emp commented May 12, 2026

Adds an optional meta.kind field to Path (PathMeta::kind + a PATH_KIND_CONVERSATION constant), so renderers and parsers can recognize a path’s shape. Plumbed through the JSONL form alongside title/source.

The one defined value is "convo", and every conversation → Path derivation now sets it (the shared toolpath_convo::derive_path and 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.


View in Codesmith
Need help on this PR? Tag @codesmith with what you need.

  • Let Codesmith autofix CI failures and bot reviews

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 12, 2026

🔍 Preview deployed: https://bd47bb55.toolpath.pages.dev

Copy link
Copy Markdown
Contributor

@akesling akesling left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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).

Comment thread RFC.md Outdated
Copy link
Copy Markdown
Contributor

@akesling akesling left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM - take a look at comment about maybe switching to an enum

Comment thread crates/toolpath/src/types.rs Outdated

/// [`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";
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.
@ben-emp ben-emp force-pushed the ben/kind-metadata-field branch from d8b26de to 94f7387 Compare May 20, 2026 15:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants