From writing-with-agents
Captures research artifacts to vaults or knowledge bases, formats source citations, saves synthesized connections from writing projects, and enriches knowledge bases with produced content.
npx claudepluginhub jeffallan/writing-with-agents --plugin writing-with-agentsThis skill uses the workspace's default tool permissions.
The Knowledge Harvester captures research artifacts and writing outputs back into the user's vault or knowledge base, creating a feedback loop where each content creation cycle enriches the source material for future work.
Ingests source material from Obsidian vaults, markdown notes, documents, and URLs; builds knowledge maps and identifies research gaps for writing projects.
Builds and maintains persistent Obsidian wiki vaults using AI for source ingestion, knowledge querying, note linting, and autonomous research.
Creates and edits notes in PKM vault using templates for ADR, research, tasks, meetings; duplicate checks via semantic search, link discovery, annotations, index updates.
Share bugs, ideas, or general feedback.
The Knowledge Harvester captures research artifacts and writing outputs back into the user's vault or knowledge base, creating a feedback loop where each content creation cycle enriches the source material for future work.
Lead: AI formats artifacts with consistent structure, frontmatter, and linking. Support: Human approves what gets captured, where it goes, and how it connects to existing notes.
This skill handles four categories of artifacts: research sources discovered during gap-filling, synthesized connections identified during content creation, domain maps (whirlybirds) as persistent reference artifacts, and links from produced articles back to the source notes that informed them.
The Knowledge Harvester does not generate new research or content. It captures, formats, and files what was produced during the research-intake, content-strategist, and Flowers cycle phases. Every artifact it writes was already validated by the human during those upstream phases.
Identify artifacts to capture -- Review the outputs from the completed writing phases. Catalog what should be captured: research sources from gap-filling, connections discovered during content creation, domain whirlybirds, and article-to-source links. Present the catalog to the human for confirmation. Do not assume everything should be captured -- the human decides what has lasting value.
Format each artifact as structured markdown -- Apply consistent frontmatter, heading structure, and linking conventions to each artifact. Every artifact gets YAML frontmatter with type, domain, date, tags, and relationship metadata. See references/vault-format.md for the full format specification.
Present formatted artifacts to human for approval -- Use AskUserQuestion to show each formatted artifact (or a summary for large batches) and ask the human to approve, modify, or reject. Do not write to the vault without explicit approval. The human may adjust titles, tags, connections, or decide to skip specific artifacts.
Write approved artifacts to vault -- Save each approved artifact to the vault path established during the research-intake session setup. Match the existing vault's file naming and folder conventions. If no convention exists, use lowercase hyphenated filenames in the root vault directory.
Confirm capture with summary -- After all approved artifacts are written, present a summary of what was saved and where. Include a count of new notes, updated connections, and the enrichment this cycle added to the vault. State the feedback loop status: the vault is now richer for the next content creation cycle.
| Topic | Reference | Load When |
|---|---|---|
| Artifact types, the feedback loop, what to capture | references/harvest-process.md | Identifying artifacts, understanding the feedback loop |
| Frontmatter templates, tagging, linking, Obsidian compatibility | references/vault-format.md | Formatting any artifact for vault capture |
MUST DO:
MUST NOT DO:
Capture Catalog (presented before writing):
## Artifacts Ready for Capture
| # | Artifact | Type | Proposed Filename | Source Phase |
|---|----------|------|-------------------|-------------|
| 1 | [Source title] | Research source | [filename.md] | Research-intake |
| 2 | [Connection description] | Synthesis note | [filename.md] | Content creation |
| 3 | [Domain whirlybird] | Domain map | [filename.md] | Content-strategist |
| 4 | [Article backlink] | Article link | [filename.md] | Flowers cycle |
Vault path: [confirmed path]
Approve all, select by number, or modify?
Capture Summary (delivered after writing):
## Knowledge Harvest Complete
**Vault path:** [path]
**Artifacts captured:** [count]
**New research sources:** [count]
**Synthesis notes:** [count]
**Domain maps saved:** [count]
**Article backlinks:** [count]
The vault is now enriched with material from the [domain] content cycle.
Next content creation cycle in this domain will benefit from [count] new source notes and [count] documented connections.
The feedback loop is the core design principle of this skill. Without harvest, each content creation cycle starts from scratch. With harvest, each cycle inherits the research, connections, and domain maps from previous cycles. Over time, the vault becomes a compounding knowledge asset where later articles benefit from the accumulated research of earlier ones.
The four artifact types serve distinct purposes in the feedback loop. Research sources are raw material discovered during gap-filling -- they feed directly into future research-intake passes. Synthesized connections are insights that emerged during content creation but were not present in any single source -- they represent original thinking worth preserving. Domain maps (whirlybirds saved as persistent references) provide spatial overviews of a knowledge domain that inform future content strategy decisions. Article backlinks connect the produced article to its source notes, creating bidirectional traceability between published content and the research that informed it.
Frontmatter consistency across all captured artifacts enables programmatic discovery. When every artifact carries structured YAML metadata with type, domain, date, tags, and relationship fields, future research-intake passes can index the vault efficiently. Inconsistent metadata forces manual discovery and defeats the purpose of structured capture. The frontmatter templates in the reference files enforce this consistency at the point of creation rather than relying on retroactive cleanup.
The human approval gate before vault writes serves two purposes. First, it prevents low-value artifacts from cluttering the knowledge base. Not every research finding or connection justifies permanent storage. The human filters for lasting value. Second, it gives the human an opportunity to adjust titles, tags, and connections before the artifact enters the vault's link graph. Adjustments at write time are trivial. Corrections after the artifact has been linked to by other notes are disruptive.