Define generic ingest skill contract #24
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Define generic ingest skill contract
Goal
Define a shared contract for source-specific ingest skills in
~/wrk/skills.The contract should shape implementations such as
ingest-youtube-transcript,ingest-youtube-video, PDF ingest, article ingest, and Markdown/artifact ingest.It should not necessarily be linked from each runtime
SKILL.md.It is an implementation/design reference for building consistent ingest skills.
Core contract
An ingest skill turns one external input into one Obsidian-ready source note plus a loose final chat report.
Examples:
Write policy
Explicitly invoking an ingest skill is approval to create one final source note in
01 sources/.The skill should not require a redundant preview/approval step before writing the source note.
The vault is Git-tracked, so review happens through the normal diff/revert workflow.
The skill should not create
02 notes/files by default.Durable note creation is a separate review/promotion activity.
Scratch policy
Raw scratch assets should default to
/tmpor another non-vault temporary directory.Examples:
Provisional Markdown scratch may be written inside the AI boundary when useful for user inspection:
Raw assets should not be copied into the vault automatically unless they are useful as attachments in the final source note.
Source note structure
The default source note structure should match the structure recovered from the YouTube summary workflow we inspected.
Source-specific skills may rename
Structurewhen it improves clarity.For example:
or:
But the generic contract should remain the same.
Metadata policy
Keep frontmatter minimal.
Required or expected fields:
Do not add generic ceremony such as:
The note's location in
01 sources/is enough to indicate that it is a source note.Review state and AI provenance should not be encoded by default.
Do not add tags by default.
Tags and tag notes are intentionally deferred.
Final chat report
The final report is the agent's response in chat, not a separate report file.
It should be loose rather than rigidly standardized.
It should include, when relevant:
Follow-up ideas belong in the final chat report, not in the source note by default.
Caveats should be included naturally when relevant.
Do not create a formal confidence system by default.
Example final report:
Skill naming direction
Prefer source-specific ingest skills.
Do not implement generic
quickordeepmodes in one skill if separate skills make the behavior clearer.For YouTube, the intended split is:
ingest-youtube-transcriptshould replace or rename the existingyoutube-transcriptuser-facing skill.It should match the ingest contract and create one source note.
The current structured JSON behavior should remain available as a helper/tool interface because structured JSON is useful and consistent for downstream workflows.
The exact JSON field shape is intentionally undecided for now.
ingest-youtube-videoshould represent the richer workflow involving timestamped captions, candidate visual moments, frame extraction, and visual evidence.That workflow is already described separately in issue #23.
Non-goals
Acceptance criteria
01 sources/./tmpand00 INBOX/ai/.02 notes/files by default.ingest-youtube-transcriptshould replace/rename the currentyoutube-transcriptuser-facing skill while preserving structured JSON as a helper interface.See #25