π¦ ClawHub
Feishu Knowledge Ingest
by @kaiasdobi
batch ingest feishu folders and single attachments into report-first knowledge artifacts. use when chatgpt needs to read a feishu directory or a single share...
TERMINAL
clawhub install feishu-knowledge-ingestπ About This Skill
name: feishu-knowledge-ingest description: batch ingest feishu folders and single attachments into report-first knowledge artifacts. use when chatgpt needs to read a feishu directory or a single shared file, classify files, extract text from supported attachments, and produce ingest-report.md, kb-items.jsonl, failed-items.jsonl, and memory.candidate.md without directly writing memory.md. best for feishu knowledge training, directory learning, policy/manual ingestion, and controlled docx/pdf parsing workflows.
Feishu Knowledge Ingest
Use this skill to turn a Feishu folder or a single shared attachment into structured, reviewable knowledge outputs.
What this skill does
.docx and .pdf in v0.1.MEMORY.md directly.Supported v0.1 scope
Inputs
folder_tokenParsing
.docx.pdfOutputs
ingest-report.mdkb-items.jsonlfailed-items.jsonlMEMORY.candidate.mdRequired behavior
1. Distinguish Feishu native docs from uploaded attachments. - Native docs:doc, sheet, wiki, bitable
- Uploaded attachments: .docx, .pdf, .pptx, other files
2. Do not claim attachment content was learned unless text was actually extracted.
3. Default to report-first. Do not write MEMORY.md in v0.1.
4. Record every failed file with a concrete reason.
5. Prefer plain-text summaries over complex Feishu cards when reporting progress.File routing rules
Direct-read
Treat these as direct-read only when the runtime has a reliable native-reader path:docsheetwikibitableDownload-and-parse
Treat these as download-and-parse:.docx.pdfManual-review
Route here when the file is out of scope or low-confidence in v0.1:.pptxPermission-blocked
Route here when listing is possible but the file cannot be downloaded or read.Standard workflow
1. Resolve input type. - Folder link/token -> enumerate files. - Single file link/token -> build a one-file manifest. 2. Create a batch record. - Generatebatch_id.
- Record started_at.
3. Build a manifest.
- File name
- File token/link
- file type
- route decision
4. Attempt extraction.
- .docx -> use parsers/parse_docx.py
- .pdf -> use parsers/parse_pdf.py
5. Produce structured outputs.
- success -> append to kb-items.jsonl
- failure -> append to failed-items.jsonl
6. Summarize the batch.
- Write ingest-report.md
- Write MEMORY.candidate.md
7. Finish the batch.
- Record finished_at
- Never auto-write MEMORY.mdOutput contracts
kb-items.jsonl
Write one JSON object per successfully extracted knowledge item with at least:batch_idsource_filesource_tokenfile_typetopiccontent_typesummaryextracted_atconfidencefailed-items.jsonl
Write one JSON object per failed or blocked file with at least:batch_idsource_filesource_tokenfile_typefailure_reasonerror_detailsuggested_actionfailed_atMEMORY.candidate.md
Include:batch_id, started_at, finished_at, source_directory or source_file)ingest-report.md
Include: 1. Batch summary 2. Input scope 3. File counts and routing counts 4. Successful extraction summary 5. Failures and risks 6. Recommended next actionsSafety rules
MEMORY.candidate.md unless the workflow explicitly allows it.Included files
run.py: minimal batch runner for local testingparsers/parse_docx.py: docx text extraction helperparsers/parse_pdf.py: pdf text extraction helperreferences/output_examples.md: sample output shapes and field guidanceREADME.md: setup and usage notes