{"id":"da4752d9-dd48-458e-9775-468e7e6798ab","entityType":"agent","slug":"clawhub-billzhuang6569-n8n-master","name":"n8n Master","canonicalUrl":"https://www.xpersona.co/agent/clawhub-billzhuang6569-n8n-master","canonicalPath":"/agent/clawhub-billzhuang6569-n8n-master","generatedAt":"2026-10-10T08:06:01.417Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-09T08:19:06.895Z","emptyReason":null},"description":"Answers n8n questions and builds n8n workflows, node configurations, Code node JavaScript, HTTP Request setups, API integrations, toolbox-assisted API tests,... Skill: n8n Master Owner: billzhuang6569 Summary: Answers n8n questions and builds n8n workflows, node configurations, Code node JavaScript, HTTP Request setups, API integrations, toolbox-assisted API tests,... Tags: api:1.0.2, automation:1.0.2, feishu:1.0.2, lark:1.0.2, latest:1.0.2, n8n:1.0.2, workflow:1.0.2 Version history: v1.0.2 | 2026-05-17T09:58:36.901Z | user Wiki-only release: remove raw source corpora while","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 3.4K downloads reported by the source. Last updated 10/9/2026.","installCommand":"clawhub skill install s17d7mdp9nn22faex2cbvcrzy183wr4c:n8n-master","sourceUrl":"https://clawhub.ai/billzhuang6569/n8n-master","homepage":"https://clawhub.ai/billzhuang6569/skills/n8n-master","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/billzhuang6569/n8n-master","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/billzhuang6569/skills/n8n-master","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":71,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Answers n8n questions and builds n8n workflows, node configurations, Code node JavaScript, HTTP Request setups, API integrations, toolbox-assisted API tests,..."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-09T08:19:06.895Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T08:19:06.895Z","emptyReason":null},"stars":null,"forks":null,"downloads":3401,"packageName":null,"latestVersion":"1.0.2","tractionLabel":"3.4K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T08:19:06.895Z","emptyReason":null},"lastUpdatedAt":"2026-10-09T08:19:06.895Z","lastCrawledAt":"2026-10-09T08:19:06.895Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-10T08:19:06.895Z","lastVerifiedAt":null,"highlights":[{"version":"1.0.2","createdAt":"2026-05-17T09:58:36.901Z","changelog":"Wiki-only release: remove raw source corpora while keeping compiled nodes, API cards, concepts, recipes, QA cards, indexes, compiler prompt, templates, and toolbox helpers.","fileCount":1324,"zipByteSize":944799},{"version":"1.0.1","createdAt":"2026-05-17T08:29:47.025Z","changelog":"Sanitize compact API index wording to avoid false-positive secret detection; keep compact routing, indexes, API cards, compiler prompt, templates, and toolbox helpers.","fileCount":113,"zipByteSize":134972},{"version":"1.0.0","createdAt":"2026-05-17T08:23:57.157Z","changelog":"Initial compact registry release: n8n-master routing, indexes, API cards, short node/concept/recipe cards, Feishu API pack metadata, compiler prompt, templates, and toolbox helpers.","fileCount":1324,"zipByteSize":528723}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s17d7mdp9nn22faex2cbvcrzy183wr4c:n8n-master","setupComplexity":"medium","setupSteps":["Setup complexity is MEDIUM. Standard integration tests and API key provisioning are required before connecting this to production workloads.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-billzhuang6569-n8n-master/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-billzhuang6569-n8n-master/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-billzhuang6569-n8n-master/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-billzhuang6569-n8n-master/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-billzhuang6569-n8n-master/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-billzhuang6569-n8n-master/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-10T08:06:01.416Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-billzhuang6569-n8n-master/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-billzhuang6569-n8n-master/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-billzhuang6569-n8n-master/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-billzhuang6569-n8n-master/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-10-09T08:19:06.895Z","emptyReason":null},"readme":"Skill: n8n Master\n\nOwner: billzhuang6569\n\nSummary: Answers n8n questions and builds n8n workflows, node configurations, Code node JavaScript, HTTP Request setups, API integrations, toolbox-assisted API tests,...\n\nTags: api:1.0.2, automation:1.0.2, feishu:1.0.2, lark:1.0.2, latest:1.0.2, n8n:1.0.2, workflow:1.0.2\n\nVersion history:\n\nv1.0.2 | 2026-05-17T09:58:36.901Z | user\n\nWiki-only release: remove raw source corpora while keeping compiled nodes, API cards, concepts, recipes, QA cards, indexes, compiler prompt, templates, and toolbox helpers.\n\nv1.0.1 | 2026-05-17T08:29:47.025Z | user\n\nSanitize compact API index wording to avoid false-positive secret detection; keep compact routing, indexes, API cards, compiler prompt, templates, and toolbox helpers.\n\nv1.0.0 | 2026-05-17T08:23:57.157Z | user\n\nInitial compact registry release: n8n-master routing, indexes, API cards, short node/concept/recipe cards, Feishu API pack metadata, compiler prompt, templates, and toolbox helpers.\n\nArchive index:\n\nArchive v1.0.2: 1324 files, 944799 bytes\n\nFiles: references/compiler/ai-document-compiler.md (4705b), references/compiler/card-templates.md (1526b), references/templates/code-node-output.md (528b), references/templates/http-node-output.md (518b), references/templates/runbook-template.md (642b), references/templates/workflow-json-output.md (618b), references/toolbox/api-tester.md (1796b), references/toolbox/feishu-bitable-tools.md (2527b), references/toolbox/firecrawl-doc-ingest.md (2354b), references/wiki/api-cards/feishu-get-bitable-v1-apps-app-token-tables-table-id-fields.md (4478b), references/wiki/api-cards/feishu-get-docx-v1-documents-document-id-blocks.md (2844b), references/wiki/api-cards/feishu-patch-docx-v1-documents-document-id-blocks-batch-update.md (2632b), references/wiki/api-cards/feishu-patch-docx-v1-documents-document-id-blocks-block-id.md (2623b), references/wiki/api-cards/feishu-patch-drive-v1-files-file-token-comments-comment-id.md (2476b), references/wiki/api-cards/feishu-post-auth-v3-tenant-access-token-internal.md (1253b), references/wiki/api-cards/feishu-post-bitable-v1-apps-app-token-tables-table-id-fields.md (1930b), references/wiki/api-cards/feishu-post-bitable-v1-apps-app-token-tables-table-id-records-batch-create.md (4536b), references/wiki/api-cards/feishu-post-bitable-v1-apps-app-token-tables-table-id-records-batch-update.md (4536b), references/wiki/api-cards/feishu-post-bitable-v1-apps-app-token-tables-table-id-records-search.md (4672b), references/wiki/api-cards/feishu-post-bitable-v1-apps-app-token-tables-table-id-records.md (4517b), references/wiki/api-cards/feishu-put-bitable-v1-apps-app-token-tables-table-id-fields-field-id.md (1938b), references/wiki/api-cards/feishu-put-bitable-v1-apps-app-token-tables-table-id-records-record-id.md (4526b), references/wiki/api-cards/n8n-public-api-delete-community-packages-name.md (579b), references/wiki/api-cards/n8n-public-api-delete-credentials-id.md (532b), references/wiki/api-cards/n8n-public-api-delete-data-tables-datatableid-columns-columnid.md (565b), references/wiki/api-cards/n8n-public-api-delete-data-tables-datatableid-rows-delete.md (672b), references/wiki/api-cards/n8n-public-api-delete-data-tables-datatableid.md (554b), references/wiki/api-cards/n8n-public-api-delete-executions-id.md (534b), references/wiki/api-cards/n8n-public-api-delete-projects-projectid-folders-folderid.md (684b), references/wiki/api-cards/n8n-public-api-delete-projects-projectid-users-userid.md (620b), references/wiki/api-cards/n8n-public-api-delete-projects-projectid.md (554b), references/wiki/api-cards/n8n-public-api-delete-tags-id.md (539b), references/wiki/api-cards/n8n-public-api-delete-users-id.md (541b), references/wiki/api-cards/n8n-public-api-delete-variables-id.md (531b), references/wiki/api-cards/n8n-public-api-delete-workflows-id.md (531b), references/wiki/api-cards/n8n-public-api-get-community-packages.md (530b), references/wiki/api-cards/n8n-public-api-get-credentials-id.md (544b), references/wiki/api-cards/n8n-public-api-get-credentials-schema-credentialtypename.md (572b), references/wiki/api-cards/n8n-public-api-get-credentials.md (506b), references/wiki/api-cards/n8n-public-api-get-data-tables-datatableid-columns.md (567b), references/wiki/api-cards/n8n-public-api-get-data-tables-datatableid-rows.md (663b), references/wiki/api-cards/n8n-public-api-get-data-tables-datatableid.md (550b), references/wiki/api-cards/n8n-public-api-get-data-tables.md (581b), references/wiki/api-cards/n8n-public-api-get-discover.md (646b), references/wiki/api-cards/n8n-public-api-get-executions-id-tags.md (537b), references/wiki/api-cards/n8n-public-api-get-executions-id.md (551b), references/wiki/api-cards/n8n-public-api-get-executions.md (636b), references/wiki/api-cards/n8n-public-api-get-insights-summary.md (644b), references/wiki/api-cards/n8n-public-api-get-projects-projectid-folders-folderid.md (613b), references/wiki/api-cards/n8n-public-api-get-projects-projectid-folders.md (778b), references/wiki/api-cards/n8n-public-api-get-projects-projectid-users.md (561b), references/wiki/api-cards/n8n-public-api-get-projects.md (504b), references/wiki/api-cards/n8n-public-api-get-tags-id.md (521b), references/wiki/api-cards/n8n-public-api-get-tags.md (500b), references/wiki/api-cards/n8n-public-api-get-users-id.md (509b), references/wiki/api-cards/n8n-public-api-get-users.md (504b), references/wiki/api-cards/n8n-public-api-get-variables.md (548b), references/wiki/api-cards/n8n-public-api-get-workflows-id-tags.md (542b), references/wiki/api-cards/n8n-public-api-get-workflows-id-versionid.md (565b), references/wiki/api-cards/n8n-public-api-get-workflows-id.md (540b), references/wiki/api-cards/n8n-public-api-get-workflows.md (683b), references/wiki/api-cards/n8n-public-api-patch-community-packages-name.md (576b), references/wiki/api-cards/n8n-public-api-patch-credentials-id.md (592b), references/wiki/api-cards/n8n-public-api-patch-data-tables-datatableid-columns-columnid.md (605b), references/wiki/api-cards/n8n-public-api-patch-data-tables-datatableid-rows-update.md (590b), references/wiki/api-cards/n8n-public-api-patch-data-tables-datatableid.md (594b), references/wiki/api-cards/n8n-public-api-patch-projects-projectid-folders-folderid.md (635b), references/wiki/api-cards/n8n-public-api-patch-projects-projectid-users-userid.md (629b), references/wiki/api-cards/n8n-public-api-patch-users-id-role.md (564b), references/wiki/api-cards/n8n-public-api-post-audit.md (539b), references/wiki/api-cards/n8n-public-api-post-community-packages.md (558b), references/wiki/api-cards/n8n-public-api-post-credentials-id-test.md (533b), references/wiki/api-cards/n8n-public-api-post-credentials.md (602b), references/wiki/api-cards/n8n-public-api-post-data-tables-datatableid-columns.md (606b), references/wiki/api-cards/n8n-public-api-post-data-tables-datatableid-rows-upsert.md (590b), references/wiki/api-cards/n8n-public-api-post-data-tables-datatableid-rows.md (585b), references/wiki/api-cards/n8n-public-api-post-data-tables.md (583b), references/wiki/api-cards/n8n-public-api-post-executions-id-retry.md (560b), references/wiki/api-cards/n8n-public-api-post-executions-id-stop.md (535b), references/wiki/api-cards/n8n-public-api-post-executions-stop.md (542b) (+924 more)\n\nFile v1.0.2:references/compiler/ai-document-compiler.md\n\n# AI Document Compiler\n\nUse this prompt when the user asks to add, absorb, compile, update, or reorganize documentation for `n8n-master`.\n\nThe compiler is an AI workflow. Scripts may create inventories and hashes, but they must not decide what a document means or silently generate final wiki knowledge.\n\n## When To Use\n\n- The user adds new docs under `references/source/`.\n- The user asks to ingest online API docs with Firecrawl and then compile them.\n- The user asks why a card is missing and wants the Skill to learn from source docs.\n- Official docs were refreshed and the wiki layer needs updating.\n- A real Q&A revealed a reusable node pattern, API detail, or workflow recipe.\n\n## Source First\n\nBefore writing any wiki file:\n\n1. Identify the exact source files.\n2. Read enough of the source to understand the object model, limits, parameters, and examples.\n3. Record the source path in the compiled card.\n4. If source material is unclear, mark the compiled card `status: draft` and name the uncertainty.\n5. Never invent node parameters, API fields, credentials, permissions, response paths, or limits.\n\n## Classification\n\nClassify each source into one primary output type:\n\n| Source kind | Compile to | Examples |\n|---|---|---|\n| n8n node docs | `references/wiki/nodes/` | HTTP Request, Webhook, Google Sheets, Slack Trigger |\n| n8n concept docs | `references/wiki/concepts/` | expressions, item linking, binary data, queue mode |\n| external API docs | `references/wiki/api-cards/` | Feishu Base add record, Stripe create payment link |\n| reusable workflow | `references/wiki/recipes/` | webhook to Base, API pagination, human review queue |\n| useful Q&A | `references/wiki/qa/` | real solved issue, verified troubleshooting answer |\n| raw-only material | keep in `references/source/` | release notes, large archive, docs not yet understood |\n\nIf a document covers multiple concerns, write one primary card and link to follow-up cards instead of stuffing everything into one long file.\n\n## Card Rules\n\nEvery compiled wiki card should include:\n\n```yaml\n---\ntitle: Short title\ntype: node-card | concept-card | api-card | recipe | qa\nstatus: draft | stable\nupdated: YYYY-MM-DD\nsource: official-doc | source-doc | local-verification | qa\ntags: [...]\n---\n```\n\nBody order:\n\n1. `# Title`\n2. `## 何时读取`\n3. `## 核心要点`\n4. Task-specific sections:\n   - Node card: parameters, operations, credentials, input/output, common issues.\n   - API card: endpoint, auth, params, body, n8n HTTP Request config, response paths, permissions/pitfalls.\n   - Concept card: definition, decision rules, examples, common mistakes.\n   - Recipe: node chain, data contract, key expressions, error handling, source cards.\n5. `## 来源`\n\nKeep cards compact. Link back to source files for full detail.\n\n## Index Updates\n\nAfter writing or changing cards, update the relevant index:\n\n- `references/wiki/index/ALL-Nodes.md`\n- `references/wiki/index/ALL-Concepts.md`\n- `references/wiki/index/ALL-APIs.md`\n- `references/wiki/index/ALL-Recipes.md`\n- `references/wiki/index/ALL-QAs.md`\n\nAlso append a short entry to:\n\n- `references/wiki/index/Compilation-Log.md`\n\nDo not create platform-specific duplicate indexes such as `ALL-APIs-Feishu.md`. Use tags and table columns inside the single `ALL-APIs.md` instead.\n\n## Future Source Ingestion\n\nWhen the user provides new docs:\n\n1. Put original files under `references/source/<doc-set>/` or `references/source/api-packs/<platform>/raw/`.\n2. If files came from Firecrawl, keep the generated `manifest.json`.\n3. Run or update a source inventory only to detect files and hashes.\n4. AI reads the new/changed source files.\n5. AI writes or updates wiki cards.\n6. AI updates indexes and compilation log.\n7. AI reports what is compiled, what remains source-only, and what is uncertain.\n\n## Compilation Prompt\n\nUse this exact working prompt internally:\n\n```text\nYou are the n8n-master documentation compiler.\n\nGoal: turn source documentation into compact, source-grounded wiki cards for future n8n workflow building.\n\nRules:\n- Read the source files first.\n- Do not invent parameters, fields, credentials, endpoints, response paths, limits, or examples.\n- Prefer several small cards over one large card.\n- Keep source files unchanged.\n- Mark uncertain content as draft.\n- Update all relevant indexes.\n- Append to Compilation-Log.md.\n- If a source is not worth compiling yet, record it as source-only and explain why.\n\nFor each source file or source group:\n1. Classify it as node, concept, API, recipe, Q&A, or source-only.\n2. Extract only durable operational knowledge.\n3. Write the correct wiki card.\n4. Include local source paths.\n5. Update indexes.\n6. Report compiled files and gaps.\n```\n\nFile v1.0.2:references/compiler/card-templates.md\n\n# Compiler Card Templates\n\n## Node Card\n\n```markdown\n---\ntitle: Node name\ntype: node-card\nstatus: draft\nupdated: YYYY-MM-DD\nsource: official-doc\ntags: [n8n, node]\n---\n\n# Node name\n\n## 何时读取\n\n...\n\n## 核心要点\n\n- ...\n\n## 关键参数 / 操作\n\n- ...\n\n## n8n 使用建议\n\n- ...\n\n## 常见坑\n\n- ...\n\n## 来源\n\n- Local: `references/source/...`\n```\n\n## API Card\n\n````markdown\n---\ntitle: Platform API name\ntype: api-card\nstatus: draft\nupdated: YYYY-MM-DD\nsource: source-doc\ntags: [api, platform, n8n]\n---\n\n# Platform API name\n\n## Endpoint\n\n- Method:\n- URL:\n\n## Auth / Headers\n\n- ...\n\n## Params\n\n- Path:\n- Query:\n\n## Body\n\n```json\n{}\n```\n\n## n8n HTTP Request\n\n- Method:\n- URL expression:\n- Headers:\n- Body Content Type:\n- Body:\n\n## Read Response\n\n- ...\n\n## Permissions / Pitfalls\n\n- ...\n\n## Source\n\n- Local: `references/source/...`\n````\n\n## Concept Card\n\n```markdown\n---\ntitle: Concept\ntype: concept-card\nstatus: draft\nupdated: YYYY-MM-DD\nsource: official-doc\ntags: [n8n, concept]\n---\n\n# Concept\n\n## 何时读取\n\n...\n\n## 定义\n\n...\n\n## 决策规则\n\n- ...\n\n## 示例\n\n...\n\n## 常见坑\n\n- ...\n\n## 来源\n\n- Local: `references/source/...`\n```\n\n## Recipe\n\n````markdown\n---\ntitle: Recipe\ntype: recipe\nstatus: draft\nupdated: YYYY-MM-DD\nsource: compiled\ntags: [n8n, workflow]\n---\n\n# Recipe\n\n## 何时读取\n\n...\n\n## 节点链路\n\n```text\nTrigger -> ...\n```\n\n## 数据契约\n\n- Input:\n- Output:\n\n## 关键配置\n\n- ...\n\n## 错误处理\n\n- ...\n\n## 来源\n\n- Local: `references/wiki/...`\n- Local: `references/source/...`\n````\n\nFile v1.0.2:references/templates/code-node-output.md\n\n# Code Node Output\n\nUse this shape when producing n8n Code node JavaScript.\n\n````markdown\n## 输入假设\n\n- Mode:\n- Incoming items:\n- Required fields:\n\n## Code node JavaScript\n\n```javascript\nconst items = $input.all();\n\nreturn items.map((item) => ({\n  json: {\n    ...item.json,\n  },\n}));\n```\n\n## 输出结构\n\n```json\n[\n  {\n    \"json\": {}\n  }\n]\n```\n\n## 注意事项\n\n- Keep secrets in credentials or environment variables.\n- Return valid n8n items.\n- Preserve item pairing when downstream nodes rely on per-item mapping.\n````\n\nFile v1.0.2:references/templates/http-node-output.md\n\n# HTTP Request Node Output\n\nUse this shape when producing n8n HTTP Request node guidance.\n\n```markdown\n## HTTP Request 节点配置\n\n| 配置项 | 值 |\n|---|---|\n| Method |  |\n| URL |  |\n| Authentication |  |\n| Headers |  |\n| Query Params |  |\n| Body Content Type |  |\n| Body |  |\n| Response Options |  |\n\n## n8n 表达式\n\n```text\n{{ $json.example }}\n```\n\n## 返回值读取\n\n- `{{$json...}}`\n\n## 调试检查\n\n- 状态码：\n- 权限：\n- 字段类型：\n- 分页：\n- 幂等：\n\n## 来源\n\n- `references/...`\n```\n\nFile v1.0.2:references/templates/runbook-template.md\n\n# n8n Workflow Runbook Template\n\n## Purpose\n\n- What the workflow does and why it exists.\n\n## Triggers\n\n- Cron / Webhook / Manual\n- Schedule, timezone, and expected frequency.\n\n## Inputs\n\n- Source systems and credentials. Reference env vars or credential names only.\n\n## Outputs\n\n- Where results go, including naming and retention.\n\n## Idempotency\n\n- Dedup key:\n- Safe rerun behavior:\n\n## Error Handling\n\n- Retry policy:\n- Failure notifications:\n- Review queue link/location:\n\n## Logging And Audit\n\n- Run ID:\n- What is logged per run:\n- Where logs are stored:\n\n## Operational Checks\n\n- Expected counts/thresholds:\n- Stop-the-line conditions:\n\nFile v1.0.2:references/templates/workflow-json-output.md\n\n# Workflow JSON Output\n\nUse this shape when producing importable or copy-paste n8n workflow JSON.\n\n```markdown\n## 导入前说明\n\n- JSON 不包含真实 secrets。\n- Credentials 使用占位名称，导入后需要在 n8n UI 中重新绑定。\n- 默认 `active: false`。\n- 写入型节点建议先手动执行或 dry-run。\n\n## Workflow JSON\n\n```json\n{\n  \"name\": \"Workflow name\",\n  \"nodes\": [],\n  \"connections\": {},\n  \"settings\": {},\n  \"active\": false\n}\n```\n\n## 验证清单\n\n- [ ] Trigger 正确\n- [ ] Credentials 已绑定\n- [ ] 样例输入测试通过\n- [ ] 写入节点已 dry-run\n- [ ] 失败路径可见\n```\n\nFile v1.0.2:references/toolbox/api-tester.md\n\n# API Tester Toolbox\n\n## 何时使用\n\n用 `scripts/toolbox/api_tester.py` 在写 n8n HTTP Request 节点前快速验证一个接口：方法、URL、headers、query、JSON body、raw body、timeout。它适合做轻量 Postman，不适合做压测、OAuth 浏览器授权或长期接口监控。\n\n## 示例命令\n\n```bash\npython3 scripts/toolbox/api_tester.py \\\n  --method POST \\\n  --url \"https://example.com/api/items\" \\\n  --headers '{\"Authorization\":\"Bearer token_here\",\"Content-Type\":\"application/json\"}' \\\n  --query '{\"limit\":10}' \\\n  --body-json '{\"name\":\"demo\"}' \\\n  --print-n8n-config\n```\n\n只检查参数、不发网络请求：\n\n```bash\npython3 scripts/toolbox/api_tester.py \\\n  --method GET \\\n  --url \"https://example.com/api/items\" \\\n  --query '{\"q\":\"n8n\"}' \\\n  --dry-run\n```\n\n从文件读取 JSON：\n\n```bash\npython3 scripts/toolbox/api_tester.py \\\n  --method POST \\\n  --url \"https://example.com/webhook\" \\\n  --headers @headers.json \\\n  --body-json @payload.json \\\n  --n8n-config-out /tmp/http-request-node.json\n```\n\n## 输出与 n8n 草稿\n\n`--print-n8n-config` 或 `--n8n-config-out` 会生成 n8n `HTTP Request` 节点的 `parameters` 草稿。草稿会保留 method、url、headers、query、body 结构，但敏感值会被替换为 `<redacted>`，导入或手工复制到 n8n 前要改成 n8n credential、环境变量或表达式。\n\n## 安全边界\n\n- 默认会脱敏 key 名包含 `authorization`、`cookie`、`token`、`secret`、`password`、`api_key` 等字段的值。\n- 脱敏是启发式保护，不保证能识别藏在普通字段里的密钥；不要把真实 token 放进要提交到仓库的命令或输出文件。\n- `--dry-run` 不发请求，适合先给其他 agent 或用户审查请求形态。\n- 脚本只使用 Python 标准库，不保存请求历史。\n\nFile v1.0.2:references/toolbox/feishu-bitable-tools.md\n\n# Feishu Bitable Toolbox\n\n## 何时使用\n\n这组工具用于 n8n workflow 设计前后处理飞书多维表格字段结构：\n\n- `feishu_get_bitable_schema.py`：读取一个表的字段列表，输出 Markdown 给人看，或 JSON 给后续脚本复用。\n- `feishu_create_bitable_fields.py`：从 schema JSON 生成字段创建请求；默认 dry-run，只有显式加 `--execute` 才会写入飞书。\n\n它们只处理字段 schema，不处理记录写入、附件上传、审批、文档块或飞书机器人消息。\n\n## 环境变量\n\n```bash\nexport FEISHU_APP_ID=\"cli_xxx\"\nexport FEISHU_APP_SECRET=\"xxx\"\n```\n\n脚本不会打印 `FEISHU_APP_SECRET` 或 tenant access token。终端命令涉及网络时，按项目全局规则保留本地代理环境。\n\n## 获取字段 Schema\n\n输出 Markdown：\n\n```bash\npython3 scripts/toolbox/feishu_get_bitable_schema.py \\\n  --app-token \"base_or_app_token\" \\\n  --table-id \"tblxxxx\" \\\n  --format markdown \\\n  --output /tmp/bitable-schema.md\n```\n\n输出 JSON，供创建字段脚本复用：\n\n```bash\npython3 scripts/toolbox/feishu_get_bitable_schema.py \\\n  --app-token \"base_or_app_token\" \\\n  --table-id \"tblxxxx\" \\\n  --format json \\\n  --output /tmp/bitable-schema.json\n```\n\n## 生成或执行字段创建\n\n默认 dry-run，不写入：\n\n```bash\npython3 scripts/toolbox/feishu_create_bitable_fields.py \\\n  --schema /tmp/bitable-schema.json \\\n  --app-token \"target_base_or_app_token\" \\\n  --table-id \"target_tblxxxx\"\n```\n\n确认无误后执行：\n\n```bash\npython3 scripts/toolbox/feishu_create_bitable_fields.py \\\n  --schema /tmp/bitable-schema.json \\\n  --app-token \"target_base_or_app_token\" \\\n  --table-id \"target_tblxxxx\" \\\n  --execute\n```\n\n执行模式会先读取目标表已有字段名并跳过同名字段。需要关闭这个保护时加 `--no-skip-existing`。\n\n## 字段限制与安全边界\n\n- 创建字段脚本默认跳过系统/只读字段类型，例如创建时间、更新时间、创建人、修改人、自动编号。\n- 如果字段 `ui_type` 显示 `dynamic` 或 `not_support`，默认跳过。动态选项字段常见写入限制，建议改为静态选项或交给 n8n 服务端逻辑处理。\n- 附件字段可以作为 schema 字段存在，但记录附件写入不能通过普通 record upsert 完成，通常需要专用附件接口或 n8n 中间层。\n- 所有写入默认 dry-run；不要在没有审查 `planned_requests` 的情况下加 `--execute`。\n- 输出中的 app token 会被脱敏，schema JSON 不保存 app secret 或 tenant access token。\n\nFile v1.0.2:references/toolbox/firecrawl-doc-ingest.md\n\n# Firecrawl Doc Ingest Toolbox\n\n## 何时使用\n\n用 `scripts/toolbox/firecrawl_ingest_docs.py` 把外部 URL 抓成 Markdown，保存到 Skill 的 `references/source/` 目录，再交给 AI compiler 做 wiki、api-card 或 recipe。它适合单页或少量页面的文档抓取，不负责站点级 crawl 队列、去重调度或内容质量清洗。\n\n## 环境变量\n\n```bash\nexport FIRECRAWL_API_KEY=\"fc-...\"\n```\n\n脚本不会打印 API key 或 Authorization header。\n\n## 示例命令\n\n先 dry-run 看请求形态和目标文件名：\n\n```bash\npython3 scripts/toolbox/firecrawl_ingest_docs.py \\\n  \"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.httprequest/\" \\\n  --source-dir references/source/api-packs/<platform>/raw \\\n  --dry-run\n```\n\n真实抓取并写入 Markdown 和 manifest：\n\n```bash\npython3 scripts/toolbox/firecrawl_ingest_docs.py \\\n  \"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.httprequest/\" \\\n  --source-dir references/source/api-packs/<platform>/raw\n```\n\n传入额外 Firecrawl 请求参数：\n\n```bash\npython3 scripts/toolbox/firecrawl_ingest_docs.py \\\n  \"https://docs.n8n.io/\" \\\n  --source-dir references/source/api-packs/<platform>/raw \\\n  --request-json '{\"onlyMainContent\":true,\"waitFor\":1000}' \\\n  --overwrite\n```\n\n## API 形态\n\n脚本默认使用 Firecrawl 当前文档中的 `POST https://api.firecrawl.dev/v2/scrape`，请求体默认是：\n\n```json\n{\n  \"url\": \"https://example.com\",\n  \"formats\": [\"markdown\"]\n}\n```\n\n如果团队使用自托管 Firecrawl 或旧版 API，可以通过 `--endpoint` 覆盖；如果响应里没有 `markdown` 或 `content` 字段，脚本会保守失败，并打印脱敏后的响应结构，提醒调用者调整 `--endpoint` 或 `--request-json`。\n\n## 输出\n\n每个 URL 会写成一个稳定文件名：\n\n```text\n001-docs-n8n-io-path-a1b2c3d4.md\n```\n\n同时写入 `manifest.json`，记录 URL、文件名、抓取时间、endpoint、formats、metadata 和 Markdown sha256。manifest 不包含 API key。\n\n## 安全边界\n\n- 默认不覆盖已有 Markdown；需要覆盖时显式加 `--overwrite`。\n- `--dry-run` 不发网络请求，也不创建文件。\n- Firecrawl 结果仍需 AI compiler 检查；不要把抓取结果直接当作已验证知识。\n- 对需要登录、含隐私或版权敏感的页面，不要用此脚本抓取进 Skill。\n\nFile v1.0.2:references/wiki/api-cards/feishu-get-bitable-v1-apps-app-token-tables-table-id-fields.md\n\n# 列出字段\n\n## 何时读取\n\n当用户需要在 n8n 里通过 HTTP Request 节点调用这个飞书 / Lark API 时读取。\n\n## Endpoint\n\n- Method: `GET`\n- URL: `https://open.feishu.cn/open-apis/bitable/v1/apps/:app_token/tables/:table_id/fields`\n\n## Auth / Headers\n\n- `Authorization: Bearer <tenant access token from previous auth step or environment>`\n- `Content-Type: application/json; charset=utf-8`\n- 不要在 workflow JSON 或示例里写入真实 app secret、tenant access token、user access token。\n\n## n8n HTTP Request 配置\n\n- Method: `GET`\n- URL: 将 `:path_param` 替换为 n8n expression，例如 `{{$json.app_token}}`。\n- Authentication: 通常选 `None`，用 headers 手动传 Bearer token；也可以封装为 n8n credential。\n- Send Headers: on\n- Send Body: 视接口请求体决定；写入 JSON 时使用官方字段结构。\n\n## 关键字段线索\n\n- 权限要求; **调用该 API 所需的权限。开启其中任意一项权限即可调用**; 开启任一权限即可 | 获取字段信息(base:field:read); 查看、评论、编辑和管理多维表格(bitable:app); 查看、评论和导出多维表格(bitable:app:readonly)\n- 200 | 1254301 | OperationTypeError | 多维表格未开启高级权限或不支持开启高级权限\n- 403 | 1254302 | Permission denied. | 调用身份缺少多维表格的高级权限。你需给予调用身份数据表的 **可管理** 权限或多维表格的 **可管理** 等权限，再重新调用。具体步骤如下所示：; - 对用户授予高级权限，你可在 **多维表格高级权限设置** 中添加用户，为用户开通足够权限；或在多维表格页面右上方 **分享** 入口为当前用户添加可管理权限。详情参考飞书帮助中心文档使用多维表格高级权限。; ![](//sf3-cn.feishucdn.com/obj/open-platform-opendoc/df3911b4f747d75914f35a46962d667d_dAsfLjv3QC.png?height=546&lazyload=true&maxWidth=550); - 对应用授予高级权限，你需通过多维表格页面右上方 **「...」** -> **「...更多」** ->**「添加文档应用」** 入口为应用添加可管理权限。; ![](//sf3-cn.feishucdn.com/obj/open-platform-opendoc/22c027f63c540592d3ca8f41d48bb107_CSas7OYJBR.png?height=1994&lazyload=true&maxWidth=550&width=3278); !image.png; **注意**：; 在 **添加文档应用** 前，你需确保目标应用至少开通了一个多维表格的 API 权限。否则你将无法在文档应用窗口搜索到目标应用。 ; - 你也可以在 **多维表格高级权限设置** 中添加用户或一个包含应用的群组，给予这个群自定义的读写等权限。\n\n## 注意事项\n\n- 权限要求; **调用该 API 所需的权限。开启其中任意一项权限即可调用**; 开启任一权限即可 | 获取字段信息(base:field:read); 查看、评论、编辑和管理多维表格(bitable:app); 查看、评论和导出多维表格(bitable:app:readonly)\n- 200 | 1254301 | OperationTypeError | 多维表格未开启高级权限或不支持开启高级权限\n- 403 | 1254302 | Permission denied. | 调用身份缺少多维表格的高级权限。你需给予调用身份数据表的 **可管理** 权限或多维表格的 **可管理** 等权限，再重新调用。具体步骤如下所示：; - 对用户授予高级权限，你可在 **多维表格高级权限设置** 中添加用户，为用户开通足够权限；或在多维表格页面右上方 **分享** 入口为当前用户添加可管理权限。详情参考飞书帮助中心文档使用多维表格高级权限。; ![](//sf3-cn.feishucdn.com/obj/open-platform-opendoc/df3911b4f747d75914f35a46962d667d_dAsfLjv3QC.png?height=546&lazyload=true&maxWidth=550); - 对应用授予高级权限，你需通过多维表格页面右上方 **「...」** -> **「...更多」** ->**「添加文档应用」** 入口为应用添加可管理权限。; ![](//sf3-cn.feishucdn.com/obj/open-platform-opendoc/22c027f63c540592d3ca8f41d48bb107_CSas7OYJBR.png?height=1994&lazyload=true&maxWidth=550&width=3278); !image.png; **注意**：; 在 **添加文档应用** 前，你需确保目标应用至少开通了一个多维表格的 API 权限。否则你将无法在文档应用窗口搜索到目标应用。 ; - 你也可以在 **多维表格高级权限设置** 中添加用户或一个包含应用的群组，给予这个群自定义的读写等权限。\n- 飞书接口经常同时受应用权限、文档权限、字段权限影响；403/400 时先核对权限和 token 类型。\n\nFile v1.0.2:references/wiki/api-cards/feishu-get-docx-v1-documents-document-id-blocks.md\n\n# 获取文档所有块\n\n## 何时读取\n\n当用户需要在 n8n 里通过 HTTP Request 节点调用这个飞书 / Lark API 时读取。\n\n## Endpoint\n\n- Method: `GET`\n- URL: `https://open.feishu.cn/open-apis/docx/v1/documents/:document_id/blocks`\n\n## Auth / Headers\n\n- `Authorization: Bearer <tenant access token from previous auth step or environment>`\n- `Content-Type: application/json; charset=utf-8`\n- 不要在 workflow JSON 或示例里写入真实 app secret、tenant access token、user access token。\n\n## n8n HTTP Request 配置\n\n- Method: `GET`\n- URL: 将 `:path_param` 替换为 n8n expression，例如 `{{$json.app_token}}`。\n- Authentication: 通常选 `None`，用 headers 手动传 Bearer token；也可以封装为 n8n credential。\n- Send Headers: on\n- Send Body: 视接口请求体决定；写入 JSON 时使用官方字段结构。\n\n## 关键字段线索\n\n- 权限要求; **调用该 API 所需的权限。开启其中任意一项权限即可调用**; 开启任一权限即可 | 创建及编辑新版文档(docx:document); 查看新版文档(docx:document:readonly)\n- 字段权限要求 | **注意事项**：该接口返回体中存在下列敏感字段，仅当开启对应的权限后才会返回；如果无需获取这些字段，则不建议申请; 获取用户 user ID(contact:user.employee_id:readonly)\n- document_revision_id | int | 否 | 查询的文档版本，-1 表示文档最新版本。文档创建后，版本为 1。; - 若查询的版本为文档最新版本，则需要持有文档的阅读权限；; - 若查询的版本为文档的历史版本，则需要持有文档的编辑权限。; 你可通过调用获取文档基本信息获取文档的 revision_id; **示例值**：-1; **默认值**：`-1`; **数据校验规则**：; - 最小值：`-1`\n\n## 注意事项\n\n- 权限要求; **调用该 API 所需的权限。开启其中任意一项权限即可调用**; 开启任一权限即可 | 创建及编辑新版文档(docx:document); 查看新版文档(docx:document:readonly)\n- 字段权限要求 | **注意事项**：该接口返回体中存在下列敏感字段，仅当开启对应的权限后才会返回；如果无需获取这些字段，则不建议申请; 获取用户 user ID(contact:user.employee_id:readonly)\n- document_revision_id | int | 否 | 查询的文档版本，-1 表示文档最新版本。文档创建后，版本为 1。; - 若查询的版本为文档最新版本，则需要持有文档的阅读权限；; - 若查询的版本为文档的历史版本，则需要持有文档的编辑权限。; 你可通过调用获取文档基本信息获取文档的 revision_id; **示例值**：-1; **默认值**：`-1`; **数据校验规则**：; - 最小值：`-1`\n- 飞书接口经常同时受应用权限、文档权限、字段权限影响；403/400 时先核对权限和 token 类型。\n\nFile v1.0.2:references/wiki/api-cards/feishu-patch-docx-v1-documents-document-id-blocks-batch-update.md\n\n# 批量更新块的内容\n\n## 何时读取\n\n当用户需要在 n8n 里通过 HTTP Request 节点调用这个飞书 / Lark API 时读取。\n\n## Endpoint\n\n- Method: `PATCH`\n- URL: `https://open.feishu.cn/open-apis/docx/v1/documents/:document_id/blocks/batch_update`\n\n## Auth / Headers\n\n- `Authorization: Bearer <tenant access token from previous auth step or environment>`\n- `Content-Type: application/json; charset=utf-8`\n- 不要在 workflow JSON 或示例里写入真实 app secret、tenant access token、user access token。\n\n## n8n HTTP Request 配置\n\n- Method: `PATCH`\n- URL: 将 `:path_param` 替换为 n8n expression，例如 `{{$json.app_token}}`。\n- Authentication: 通常选 `None`，用 headers 手动传 Bearer token；也可以封装为 n8n credential。\n- Send Headers: on\n- Send Body: 视接口请求体决定；写入 JSON 时使用官方字段结构。\n\n## 关键字段线索\n\n- 权限要求; **调用该 API 所需的权限。开启其中任意一项权限即可调用**; 开启任一权限即可 | 创建及编辑新版文档(docx:document); 编辑新版文档(docx:document:write_only)\n- 字段权限要求 | **注意事项**：该接口返回体中存在下列敏感字段，仅当开启对应的权限后才会返回；如果无需获取这些字段，则不建议申请; 获取用户 user ID(contact:user.employee_id:readonly)\n- document_revision_id | int | 否 | 要操作的文档版本。-1 表示文档最新版本。文档创建后，版本为 1。你需确保你已拥有文档的编辑权限。你可通过调用获取文档基本信息获取文档的最新 revision_id; **示例值**：-1; **默认值**：`-1`; **数据校验规则**：; - 最小值：`-1`\n\n## 注意事项\n\n- 权限要求; **调用该 API 所需的权限。开启其中任意一项权限即可调用**; 开启任一权限即可 | 创建及编辑新版文档(docx:document); 编辑新版文档(docx:document:write_only)\n- 字段权限要求 | **注意事项**：该接口返回体中存在下列敏感字段，仅当开启对应的权限后才会返回；如果无需获取这些字段，则不建议申请; 获取用户 user ID(contact:user.employee_id:readonly)\n- document_revision_id | int | 否 | 要操作的文档版本。-1 表示文档最新版本。文档创建后，版本为 1。你需确保你已拥有文档的编辑权限。你可通过调用获取文档基本信息获取文档的最新 revision_id; **示例值**：-1; **默认值**：`-1`; **数据校验规则**：; - 最小值：`-1`\n- 飞书接口经常同时受应用权限、文档权限、字段权限影响；403/400 时先核对权限和 token 类型。\n\nArchive v1.0.1: 113 files, 134972 bytes\n\nFiles: references/compiler/ai-document-compiler.md (4705b), references/compiler/card-templates.md (1526b), references/source/README.md (204b), references/templates/code-node-output.md (528b), references/templates/http-node-output.md (518b), references/templates/runbook-template.md (642b), references/templates/workflow-json-output.md (618b), references/wiki/api-cards/feishu-get-bitable-v1-apps-app-token-tables-table-id-fields.md (4912b), references/wiki/api-cards/feishu-get-docx-v1-documents-document-id-blocks.md (3248b), references/wiki/api-cards/feishu-patch-docx-v1-documents-document-id-blocks-batch-update.md (3082b), references/wiki/api-cards/feishu-patch-docx-v1-documents-document-id-blocks-block-id.md (3054b), references/wiki/api-cards/feishu-patch-drive-v1-files-file-token-comments-comment-id.md (2898b), references/wiki/api-cards/feishu-post-auth-v3-tenant-access-token-internal.md (1667b), references/wiki/api-cards/feishu-post-bitable-v1-apps-app-token-tables-table-id-fields.md (2369b), references/wiki/api-cards/feishu-post-bitable-v1-apps-app-token-tables-table-id-records-batch-create.md (4997b), references/wiki/api-cards/feishu-post-bitable-v1-apps-app-token-tables-table-id-records-batch-update.md (4997b), references/wiki/api-cards/feishu-post-bitable-v1-apps-app-token-tables-table-id-records-search.md (5123b), references/wiki/api-cards/feishu-post-bitable-v1-apps-app-token-tables-table-id-records.md (4955b), references/wiki/api-cards/feishu-put-bitable-v1-apps-app-token-tables-table-id-fields-field-id.md (2386b), references/wiki/api-cards/feishu-put-bitable-v1-apps-app-token-tables-table-id-records-record-id.md (4980b), references/wiki/api-cards/n8n-public-api-delete-community-packages-name.md (942b), references/wiki/api-cards/n8n-public-api-delete-credentials-id.md (880b), references/wiki/api-cards/n8n-public-api-delete-data-tables-datatableid-columns-columnid.md (933b), references/wiki/api-cards/n8n-public-api-delete-data-tables-datatableid-rows-delete.md (1047b), references/wiki/api-cards/n8n-public-api-delete-data-tables-datatableid.md (907b), references/wiki/api-cards/n8n-public-api-delete-executions-id.md (877b), references/wiki/api-cards/n8n-public-api-delete-projects-projectid-folders-folderid.md (1047b), references/wiki/api-cards/n8n-public-api-delete-projects-projectid-users-userid.md (992b), references/wiki/api-cards/n8n-public-api-delete-projects-projectid.md (899b), references/wiki/api-cards/n8n-public-api-delete-tags-id.md (869b), references/wiki/api-cards/n8n-public-api-delete-users-id.md (873b), references/wiki/api-cards/n8n-public-api-delete-variables-id.md (871b), references/wiki/api-cards/n8n-public-api-delete-workflows-id.md (871b), references/wiki/api-cards/n8n-public-api-get-community-packages.md (887b), references/wiki/api-cards/n8n-public-api-get-credentials-id.md (886b), references/wiki/api-cards/n8n-public-api-get-credentials-schema-credentialtypename.md (944b), references/wiki/api-cards/n8n-public-api-get-credentials.md (839b), references/wiki/api-cards/n8n-public-api-get-data-tables-datatableid-columns.md (934b), references/wiki/api-cards/n8n-public-api-get-data-tables-datatableid-rows.md (1030b), references/wiki/api-cards/n8n-public-api-get-data-tables-datatableid.md (897b), references/wiki/api-cards/n8n-public-api-get-data-tables.md (918b), references/wiki/api-cards/n8n-public-api-get-discover.md (995b), references/wiki/api-cards/n8n-public-api-get-executions-id-tags.md (881b), references/wiki/api-cards/n8n-public-api-get-executions-id.md (893b), references/wiki/api-cards/n8n-public-api-get-executions.md (975b), references/wiki/api-cards/n8n-public-api-get-insights-summary.md (991b), references/wiki/api-cards/n8n-public-api-get-projects-projectid-folders-folderid.md (976b), references/wiki/api-cards/n8n-public-api-get-projects-projectid-folders.md (1128b), references/wiki/api-cards/n8n-public-api-get-projects-projectid-users.md (913b), references/wiki/api-cards/n8n-public-api-get-projects.md (835b), references/wiki/api-cards/n8n-public-api-get-tags-id.md (851b), references/wiki/api-cards/n8n-public-api-get-tags.md (827b), references/wiki/api-cards/n8n-public-api-get-users-id.md (845b), references/wiki/api-cards/n8n-public-api-get-users.md (833b), references/wiki/api-cards/n8n-public-api-get-variables.md (881b), references/wiki/api-cards/n8n-public-api-get-workflows-id-tags.md (884b), references/wiki/api-cards/n8n-public-api-get-workflows-id-versionid.md (939b), references/wiki/api-cards/n8n-public-api-get-workflows-id.md (879b), references/wiki/api-cards/n8n-public-api-get-workflows.md (1020b), references/wiki/api-cards/n8n-public-api-patch-community-packages-name.md (935b), references/wiki/api-cards/n8n-public-api-patch-credentials-id.md (939b), references/wiki/api-cards/n8n-public-api-patch-data-tables-datatableid-columns-columnid.md (972b), references/wiki/api-cards/n8n-public-api-patch-data-tables-datatableid-rows-update.md (962b), references/wiki/api-cards/n8n-public-api-patch-data-tables-datatableid.md (946b), references/wiki/api-cards/n8n-public-api-patch-projects-projectid-folders-folderid.md (997b), references/wiki/api-cards/n8n-public-api-patch-projects-projectid-users-userid.md (1005b), references/wiki/api-cards/n8n-public-api-patch-users-id-role.md (914b), references/wiki/api-cards/n8n-public-api-post-audit.md (868b), references/wiki/api-cards/n8n-public-api-post-community-packages.md (910b), references/wiki/api-cards/n8n-public-api-post-credentials-id-test.md (882b), references/wiki/api-cards/n8n-public-api-post-credentials.md (939b), references/wiki/api-cards/n8n-public-api-post-data-tables-datatableid-columns.md (974b), references/wiki/api-cards/n8n-public-api-post-data-tables-datatableid-rows-upsert.md (962b), references/wiki/api-cards/n8n-public-api-post-data-tables-datatableid-rows.md (951b), references/wiki/api-cards/n8n-public-api-post-data-tables.md (924b), references/wiki/api-cards/n8n-public-api-post-executions-id-retry.md (906b), references/wiki/api-cards/n8n-public-api-post-executions-id-stop.md (879b), references/wiki/api-cards/n8n-public-api-post-executions-stop.md (888b), references/wiki/api-cards/n8n-public-api-post-projects-projectid-folders.md (932b), references/wiki/api-cards/n8n-public-api-post-projects-projectid-users.md (948b)\n\nFile v1.0.1:SKILL.md\n\n---\nname: n8n-master\ndescription: Answers n8n questions and builds n8n workflows, node configurations, Code node JavaScript, HTTP Request setups, API integrations, toolbox-assisted API tests, and importable workflow JSON. Use when the user asks about n8n concepts, workflow design, node behavior, expressions, debugging, external API integration, automation architecture, or production hardening.\n---\n\n# n8n Master\n\n## Purpose\n\nUse this skill to answer n8n questions and produce practical n8n artifacts: workflow designs, node configurations, Code node JavaScript, HTTP Request setups, external API integrations, and importable workflow JSON.\n\nDo not invent node parameters, API fields, permissions, or response paths. Prefer local references first, then official source files. If the references do not support an answer, say what is missing.\n\n## Routing\n\nStart with the narrowest relevant index:\n\n- n8n concepts: `references/wiki/index/ALL-Concepts.md`, then `references/wiki/concepts/`.\n- n8n nodes: `references/wiki/index/ALL-Nodes.md`, then `references/wiki/nodes/`.\n- External APIs: `references/wiki/index/ALL-APIs.md`, then `references/wiki/api-cards/`.\n- Workflow patterns: `references/wiki/index/ALL-Recipes.md`, then `references/wiki/recipes/`.\n- Useful Q&A: `references/wiki/index/ALL-QAs.md`, then `references/wiki/qa/`.\n- Real source documents: `references/wiki/index/ALL-Sources.md`, then `references/source/` when a card is missing, ambiguous, or high-risk.\n- Document compilation: `references/compiler/ai-document-compiler.md` when the user asks to absorb, compile, update, or learn from docs.\n- Toolbox operations: `references/toolbox/` only when the user explicitly asks to test an API, inspect/create Feishu Base fields, or ingest online docs.\n\nIf an index is missing or incomplete, use `rg` over `references/wiki/` and `references/source/`.\n\n## Answer Modes\n\n### Concept or Debugging Question\n\n1. Search the relevant index and card.\n2. Check source files for fragile details.\n3. Answer with source file paths.\n4. Separate confirmed facts from inference.\n\n### HTTP Request Node\n\nUse `references/templates/http-node-output.md`.\n\nInclude method, URL, auth, headers, query params, body, response paths, and common failure checks. Do not include real secrets. Use credential names or environment variable placeholders.\n\n### Code Node\n\nUse `references/templates/code-node-output.md`.\n\nState the assumed input item structure and execution mode. Return valid n8n items, usually an array of `{ json: ... }` objects for \"Run Once for All Items\". Avoid unsupported globals unless a local source confirms them.\n\n### Workflow JSON\n\nUse `references/templates/workflow-json-output.md`.\n\nOnly output full workflow JSON when the user asks for importable/copy-paste workflow JSON. Keep `active: false`. Use placeholder credential names. Mention that credentials must be bound in n8n after import.\n\n### Production Hardening\n\nUse hardening recipes when the user asks for reliability, auditability, retries, idempotency, human review, safe reruns, or \"no silent failure\".\n\nAdd only the hardening needed for the workflow:\n\n- dedup key and idempotent writes\n- run_id and status logging\n- retries/backoff for safe operations\n- final failure notification\n- human review queue for risky failures\n- runbook when the workflow is meant to operate long-term\n\n### Toolbox\n\nToolbox scripts are not part of normal answering. Use them only when explicitly helpful:\n\n- `scripts/toolbox/api_tester.py`: lightweight Postman-like API test and n8n HTTP Request draft.\n- `scripts/toolbox/feishu_get_bitable_schema.py`: read Feishu Base field schema.\n- `scripts/toolbox/feishu_create_bitable_fields.py`: create Feishu Base fields; default dry-run.\n- `scripts/toolbox/firecrawl_ingest_docs.py`: ingest online docs into `references/source/`.\n\nBefore running a toolbox script that may touch the network, preserve the local proxy environment. Before write operations, dry-run first unless the user clearly requests execution.\n\n### Document Compilation\n\nWhen the user adds new docs or asks this skill to learn from source files, do not rely on a script to generate final knowledge. Use `references/compiler/ai-document-compiler.md`.\n\nThe AI compiler must read source files, classify them, write compact wiki cards, update `references/wiki/index/ALL-*.md`, and append to `references/wiki/index/Compilation-Log.md`. Scripts may only help with mechanical inventory and hashes.\n\n## Source And Safety Rules\n\n- Never write real tokens, cookies, app secrets, or API keys into outputs, workflow JSON, references, source files, logs, or examples.\n- For Feishu tools, use `FEISHU_APP_ID` and `FEISHU_APP_SECRET` from the environment; never print them.\n- For Firecrawl, use `FIRECRAWL_API_KEY` from the environment; never print it.\n- For writes, deletes, batch updates, external messages, or customer/financial data, prefer dry-run and explicit confirmation.\n- If source documents disagree, cite the conflict and avoid pretending it is resolved.\n- Keep answers copy-paste practical; avoid long tutorials unless the user asks.\n\nFile v1.0.1:references/source/README.md\n\n# ClawHub Compact Source Note\n\nThis ClawHub package keeps indexes, API cards, compiler prompt, templates, and toolbox scripts. The full local build includes all node/concept/recipe cards and source docs.\n\nFile v1.0.1:_meta.json\n\n{\n  \"ownerId\": \"kn710wd5tpcq1z1qth8bvctvax80hg27\",\n  \"slug\": \"n8n-master\",\n  \"version\": \"1.0.1\",\n  \"publishedAt\": 1779006587025\n}\n\nFile v1.0.1:references/compiler/ai-document-compiler.md\n\n# AI Document Compiler\n\nUse this prompt when the user asks to add, absorb, compile, update, or reorganize documentation for `n8n-master`.\n\nThe compiler is an AI workflow. Scripts may create inventories and hashes, but they must not decide what a document means or silently generate final wiki knowledge.\n\n## When To Use\n\n- The user adds new docs under `references/source/`.\n- The user asks to ingest online API docs with Firecrawl and then compile them.\n- The user asks why a card is missing and wants the Skill to learn from source docs.\n- Official docs were refreshed and the wiki layer needs updating.\n- A real Q&A revealed a reusable node pattern, API detail, or workflow recipe.\n\n## Source First\n\nBefore writing any wiki file:\n\n1. Identify the exact source files.\n2. Read enough of the source to understand the object model, limits, parameters, and examples.\n3. Record the source path in the compiled card.\n4. If source material is unclear, mark the compiled card `status: draft` and name the uncertainty.\n5. Never invent node parameters, API fields, credentials, permissions, response paths, or limits.\n\n## Classification\n\nClassify each source into one primary output type:\n\n| Source kind | Compile to | Examples |\n|---|---|---|\n| n8n node docs | `references/wiki/nodes/` | HTTP Request, Webhook, Google Sheets, Slack Trigger |\n| n8n concept docs | `references/wiki/concepts/` | expressions, item linking, binary data, queue mode |\n| external API docs | `references/wiki/api-cards/` | Feishu Base add record, Stripe create payment link |\n| reusable workflow | `references/wiki/recipes/` | webhook to Base, API pagination, human review queue |\n| useful Q&A | `references/wiki/qa/` | real solved issue, verified troubleshooting answer |\n| raw-only material | keep in `references/source/` | release notes, large archive, docs not yet understood |\n\nIf a document covers multiple concerns, write one primary card and link to follow-up cards instead of stuffing everything into one long file.\n\n## Card Rules\n\nEvery compiled wiki card should include:\n\n```yaml\n---\ntitle: Short title\ntype: node-card | concept-card | api-card | recipe | qa\nstatus: draft | stable\nupdated: YYYY-MM-DD\nsource: official-doc | source-doc | local-verification | qa\ntags: [...]\n---\n```\n\nBody order:\n\n1. `# Title`\n2. `## 何时读取`\n3. `## 核心要点`\n4. Task-specific sections:\n   - Node card: parameters, operations, credentials, input/output, common issues.\n   - API card: endpoint, auth, params, body, n8n HTTP Request config, response paths, permissions/pitfalls.\n   - Concept card: definition, decision rules, examples, common mistakes.\n   - Recipe: node chain, data contract, key expressions, error handling, source cards.\n5. `## 来源`\n\nKeep cards compact. Link back to source files for full detail.\n\n## Index Updates\n\nAfter writing or changing cards, update the relevant index:\n\n- `references/wiki/index/ALL-Nodes.md`\n- `references/wiki/index/ALL-Concepts.md`\n- `references/wiki/index/ALL-APIs.md`\n- `references/wiki/index/ALL-Recipes.md`\n- `references/wiki/index/ALL-QAs.md`\n\nAlso append a short entry to:\n\n- `references/wiki/index/Compilation-Log.md`\n\nDo not create platform-specific duplicate indexes such as `ALL-APIs-Feishu.md`. Use tags and table columns inside the single `ALL-APIs.md` instead.\n\n## Future Source Ingestion\n\nWhen the user provides new docs:\n\n1. Put original files under `references/source/<doc-set>/` or `references/source/api-packs/<platform>/raw/`.\n2. If files came from Firecrawl, keep the generated `manifest.json`.\n3. Run or update a source inventory only to detect files and hashes.\n4. AI reads the new/changed source files.\n5. AI writes or updates wiki cards.\n6. AI updates indexes and compilation log.\n7. AI reports what is compiled, what remains source-only, and what is uncertain.\n\n## Compilation Prompt\n\nUse this exact working prompt internally:\n\n```text\nYou are the n8n-master documentation compiler.\n\nGoal: turn source documentation into compact, source-grounded wiki cards for future n8n workflow building.\n\nRules:\n- Read the source files first.\n- Do not invent parameters, fields, credentials, endpoints, response paths, limits, or examples.\n- Prefer several small cards over one large card.\n- Keep source files unchanged.\n- Mark uncertain content as draft.\n- Update all relevant indexes.\n- Append to Compilation-Log.md.\n- If a source is not worth compiling yet, record it as source-only and explain why.\n\nFor each source file or source group:\n1. Classify it as node, concept, API, recipe, Q&A, or source-only.\n2. Extract only durable operational knowledge.\n3. Write the correct wiki card.\n4. Include local source paths.\n5. Update indexes.\n6. Report compiled files and gaps.\n```\n\nFile v1.0.1:references/compiler/card-templates.md\n\n# Compiler Card Templates\n\n## Node Card\n\n```markdown\n---\ntitle: Node name\ntype: node-card\nstatus: draft\nupdated: YYYY-MM-DD\nsource: official-doc\ntags: [n8n, node]\n---\n\n# Node name\n\n## 何时读取\n\n...\n\n## 核心要点\n\n- ...\n\n## 关键参数 / 操作\n\n- ...\n\n## n8n 使用建议\n\n- ...\n\n## 常见坑\n\n- ...\n\n## 来源\n\n- Local: `references/source/...`\n```\n\n## API Card\n\n````markdown\n---\ntitle: Platform API name\ntype: api-card\nstatus: draft\nupdated: YYYY-MM-DD\nsource: source-doc\ntags: [api, platform, n8n]\n---\n\n# Platform API name\n\n## Endpoint\n\n- Method:\n- URL:\n\n## Auth / Headers\n\n- ...\n\n## Params\n\n- Path:\n- Query:\n\n## Body\n\n```json\n{}\n```\n\n## n8n HTTP Request\n\n- Method:\n- URL expression:\n- Headers:\n- Body Content Type:\n- Body:\n\n## Read Response\n\n- ...\n\n## Permissions / Pitfalls\n\n- ...\n\n## Source\n\n- Local: `references/source/...`\n````\n\n## Concept Card\n\n```markdown\n---\ntitle: Concept\ntype: concept-card\nstatus: draft\nupdated: YYYY-MM-DD\nsource: official-doc\ntags: [n8n, concept]\n---\n\n# Concept\n\n## 何时读取\n\n...\n\n## 定义\n\n...\n\n## 决策规则\n\n- ...\n\n## 示例\n\n...\n\n## 常见坑\n\n- ...\n\n## 来源\n\n- Local: `references/source/...`\n```\n\n## Recipe\n\n````markdown\n---\ntitle: Recipe\ntype: recipe\nstatus: draft\nupdated: YYYY-MM-DD\nsource: compiled\ntags: [n8n, workflow]\n---\n\n# Recipe\n\n## 何时读取\n\n...\n\n## 节点链路\n\n```text\nTrigger -> ...\n```\n\n## 数据契约\n\n- Input:\n- Output:\n\n## 关键配置\n\n- ...\n\n## 错误处理\n\n- ...\n\n## 来源\n\n- Local: `references/wiki/...`\n- Local: `references/source/...`\n````\n\nFile v1.0.1:references/templates/code-node-output.md\n\n# Code Node Output\n\nUse this shape when producing n8n Code node JavaScript.\n\n````markdown\n## 输入假设\n\n- Mode:\n- Incoming items:\n- Required fields:\n\n## Code node JavaScript\n\n```javascript\nconst items = $input.all();\n\nreturn items.map((item) => ({\n  json: {\n    ...item.json,\n  },\n}));\n```\n\n## 输出结构\n\n```json\n[\n  {\n    \"json\": {}\n  }\n]\n```\n\n## 注意事项\n\n- Keep secrets in credentials or environment variables.\n- Return valid n8n items.\n- Preserve item pairing when downstream nodes rely on per-item mapping.\n````\n\nFile v1.0.1:references/templates/http-node-output.md\n\n# HTTP Request Node Output\n\nUse this shape when producing n8n HTTP Request node guidance.\n\n```markdown\n## HTTP Request 节点配置\n\n| 配置项 | 值 |\n|---|---|\n| Method |  |\n| URL |  |\n| Authentication |  |\n| Headers |  |\n| Query Params |  |\n| Body Content Type |  |\n| Body |  |\n| Response Options |  |\n\n## n8n 表达式\n\n```text\n{{ $json.example }}\n```\n\n## 返回值读取\n\n- `{{$json...}}`\n\n## 调试检查\n\n- 状态码：\n- 权限：\n- 字段类型：\n- 分页：\n- 幂等：\n\n## 来源\n\n- `references/...`\n```\n\nFile v1.0.1:references/templates/runbook-template.md\n\n# n8n Workflow Runbook Template\n\n## Purpose\n\n- What the workflow does and why it exists.\n\n## Triggers\n\n- Cron / Webhook / Manual\n- Schedule, timezone, and expected frequency.\n\n## Inputs\n\n- Source systems and credentials. Reference env vars or credential names only.\n\n## Outputs\n\n- Where results go, including naming and retention.\n\n## Idempotency\n\n- Dedup key:\n- Safe rerun behavior:\n\n## Error Handling\n\n- Retry policy:\n- Failure notifications:\n- Review queue link/location:\n\n## Logging And Audit\n\n- Run ID:\n- What is logged per run:\n- Where logs are stored:\n\n## Operational Checks\n\n- Expected counts/thresholds:\n- Stop-the-line conditions:\n\nFile v1.0.1:references/templates/workflow-json-output.md\n\n# Workflow JSON Output\n\nUse this shape when producing importable or copy-paste n8n workflow JSON.\n\n```markdown\n## 导入前说明\n\n- JSON 不包含真实 secrets。\n- Credentials 使用占位名称，导入后需要在 n8n UI 中重新绑定。\n- 默认 `active: false`。\n- 写入型节点建议先手动执行或 dry-run。\n\n## Workflow JSON\n\n```json\n{\n  \"name\": \"Workflow name\",\n  \"nodes\": [],\n  \"connections\": {},\n  \"settings\": {},\n  \"active\": false\n}\n```\n\n## 验证清单\n\n- [ ] Trigger 正确\n- [ ] Credentials 已绑定\n- [ ] 样例输入测试通过\n- [ ] 写入节点已 dry-run\n- [ ] 失败路径可见\n```\n\nFile v1.0.1:references/wiki/api-cards/feishu-get-bitable-v1-apps-app-token-tables-table-id-fields.md\n\n---\ntitle: \"列出字段\"\ntype: api-card\nstatus: stable\nupdated: 2026-05-17\nsource: source-doc\nmethod: GET\nendpoint: \"https://open.feishu.cn/open-apis/bitable/v1/apps/:app_token/tables/:table_id/fields\"\nsource_files:\n  - \"references/source/api-packs/feishu/apidoc-feishu-base-field-getfields.md\"\ntags: [api, feishu, lark, n8n, http-request]\n---\n\n# 列出字段\n\n## 何时读取\n\n当用户需要在 n8n 里通过 HTTP Request 节点调用这个飞书 / Lark API 时读取。\n\n## Endpoint\n\n- Method: `GET`\n- URL: `https://open.feishu.cn/open-apis/bitable/v1/apps/:app_token/tables/:table_id/fields`\n\n## Auth / Headers\n\n- `Authorization: Bearer <tenant access token from previous auth step or environment>`\n- `Content-Type: application/json; charset=utf-8`\n- 不要在 workflow JSON 或示例里写入真实 app secret、tenant access token、user access token。\n\n## n8n HTTP Request 配置\n\n- Method: `GET`\n- URL: 将 `:path_param` 替换为 n8n expression，例如 `{{$json.app_token}}`。\n- Authentication: 通常选 `None`，用 headers 手动传 Bearer token；也可以封装为 n8n credential。\n- Send Headers: on\n- Send Body: 视接口请求体决定；写入 JSON 时使用官方字段结构。\n\n## 关键字段线索\n\n- 权限要求; **调用该 API 所需的权限。开启其中任意一项权限即可调用**; 开启任一权限即可 | 获取字段信息(base:field:read); 查看、评论、编辑和管理多维表格(bitable:app); 查看、评论和导出多维表格(bitable:app:readonly)\n- 200 | 1254301 | OperationTypeError | 多维表格未开启高级权限或不支持开启高级权限\n- 403 | 1254302 | Permission denied. | 调用身份缺少多维表格的高级权限。你需给予调用身份数据表的 **可管理** 权限或多维表格的 **可管理** 等权限，再重新调用。具体步骤如下所示：; - 对用户授予高级权限，你可在 **多维表格高级权限设置** 中添加用户，为用户开通足够权限；或在多维表格页面右上方 **分享** 入口为当前用户添加可管理权限。详情参考飞书帮助中心文档使用多维表格高级权限。; ![](//sf3-cn.feishucdn.com/obj/open-platform-opendoc/df3911b4f747d75914f35a46962d667d_dAsfLjv3QC.png?height=546&lazyload=true&maxWidth=550); - 对应用授予高级权限，你需通过多维表格页面右上方 **「...」** -> **「...更多」** ->**「添加文档应用」** 入口为应用添加可管理权限。; ![](//sf3-cn.feishucdn.com/obj/open-platform-opendoc/22c027f63c540592d3ca8f41d48bb107_CSas7OYJBR.png?height=1994&lazyload=true&maxWidth=550&width=3278); !image.png; **注意**：; 在 **添加文档应用** 前，你需确保目标应用至少开通了一个多维表格的 API 权限。否则你将无法在文档应用窗口搜索到目标应用。 ; - 你也可以在 **多维表格高级权限设置** 中添加用户或一个包含应用的群组，给予这个群自定义的读写等权限。\n\n## 注意事项\n\n- 权限要求; **调用该 API 所需的权限。开启其中任意一项权限即可调用**; 开启任一权限即可 | 获取字段信息(base:field:read); 查看、评论、编辑和管理多维表格(bitable:app); 查看、评论和导出多维表格(bitable:app:readonly)\n- 200 | 1254301 | OperationTypeError | 多维表格未开启高级权限或不支持开启高级权限\n- 403 | 1254302 | Permission denied. | 调用身份缺少多维表格的高级权限。你需给予调用身份数据表的 **可管理** 权限或多维表格的 **可管理** 等权限，再重新调用。具体步骤如下所示：; - 对用户授予高级权限，你可在 **多维表格高级权限设置** 中添加用户，为用户开通足够权限；或在多维表格页面右上方 **分享** 入口为当前用户添加可管理权限。详情参考飞书帮助中心文档使用多维表格高级权限。; ![](//sf3-cn.feishucdn.com/obj/open-platform-opendoc/df3911b4f747d75914f35a46962d667d_dAsfLjv3QC.png?height=546&lazyload=true&maxWidth=550); - 对应用授予高级权限，你需通过多维表格页面右上方 **「...」** -> **「...更多」** ->**「添加文档应用」** 入口为应用添加可管理权限。; ![](//sf3-cn.feishucdn.com/obj/open-platform-opendoc/22c027f63c540592d3ca8f41d48bb107_CSas7OYJBR.png?height=1994&lazyload=true&maxWidth=550&width=3278); !image.png; **注意**：; 在 **添加文档应用** 前，你需确保目标应用至少开通了一个多维表格的 API 权限。否则你将无法在文档应用窗口搜索到目标应用。 ; - 你也可以在 **多维表格高级权限设置** 中添加用户或一个包含应用的群组，给予这个群自定义的读写等权限。\n- 飞书接口经常同时受应用权限、文档权限、字段权限影响；403/400 时先核对权限和 token 类型。\n\n## 来源\n\n- `references/source/api-packs/feishu/apidoc-feishu-base-field-getfields.md`\n\nFile v1.0.1:references/wiki/api-cards/feishu-get-docx-v1-documents-document-id-blocks.md\n\n---\ntitle: \"获取文档所有块\"\ntype: api-card\nstatus: stable\nupdated: 2026-05-17\nsource: source-doc\nmethod: GET\nendpoint: \"https://open.feishu.cn/open-apis/docx/v1/documents/:document_id/blocks\"\nsource_files:\n  - \"references/source/api-packs/feishu/apidoc-feishu-get-doc.md\"\ntags: [api, feishu, lark, n8n, http-request]\n---\n\n# 获取文档所有块\n\n## 何时读取\n\n当用户需要在 n8n 里通过 HTTP Request 节点调用这个飞书 / Lark API 时读取。\n\n## Endpoint\n\n- Method: `GET`\n- URL: `https://open.feishu.cn/open-apis/docx/v1/documents/:document_id/blocks`\n\n## Auth / Headers\n\n- `Authorization: Bearer <tenant access token from previous auth step or environment>`\n- `Content-Type: application/json; charset=utf-8`\n- 不要在 workflow JSON 或示例里写入真实 app secret、tenant access token、user access token。\n\n## n8n HTTP Request 配置\n\n- Method: `GET`\n- URL: 将 `:path_param` 替换为 n8n expression，例如 `{{$json.app_token}}`。\n- Authentication: 通常选 `None`，用 headers 手动传 Bearer token；也可以封装为 n8n credential。\n- Send Headers: on\n- Send Body: 视接口请求体决定；写入 JSON 时使用官方字段结构。\n\n## 关键字段线索\n\n- 权限要求; **调用该 API 所需的权限。开启其中任意一项权限即可调用**; 开启任一权限即可 | 创建及编辑新版文档(docx:document); 查看新版文档(docx:document:readonly)\n- 字段权限要求 | **注意事项**：该接口返回体中存在下列敏感字段，仅当开启对应的权限后才会返回；如果无需获取这些字段，则不建议申请; 获取用户 user ID(contact:user.employee_id:readonly)\n- document_revision_id | int | 否 | 查询的文档版本，-1 表示文档最新版本。文档创建后，版本为 1。; - 若查询的版本为文档最新版本，则需要持有文档的阅读权限；; - 若查询的版本为文档的历史版本，则需要持有文档的编辑权限。; 你可通过调用获取文档基本信息获取文档的 revision_id; **示例值**：-1; **默认值**：`-1`; **数据校验规则**：; - 最小值：`-1`\n\n## 注意事项\n\n- 权限要求; **调用该 API 所需的权限。开启其中任意一项权限即可调用**; 开启任一权限即可 | 创建及编辑新版文档(docx:document); 查看新版文档(docx:document:readonly)\n- 字段权限要求 | **注意事项**：该接口返回体中存在下列敏感字段，仅当开启对应的权限后才会返回；如果无需获取这些字段，则不建议申请; 获取用户 user ID(contact:user.employee_id:readonly)\n- document_revision_id | int | 否 | 查询的文档版本，-1 表示文档最新版本。文档创建后，版本为 1。; - 若查询的版本为文档最新版本，则需要持有文档的阅读权限；; - 若查询的版本为文档的历史版本，则需要持有文档的编辑权限。; 你可通过调用获取文档基本信息获取文档的 revision_id; **示例值**：-1; **默认值**：`-1`; **数据校验规则**：; - 最小值：`-1`\n- 飞书接口经常同时受应用权限、文档权限、字段权限影响；403/400 时先核对权限和 token 类型。\n\n## 来源\n\n- `references/source/api-packs/feishu/apidoc-feishu-get-doc.md`\n\nFile v1.0.1:references/wiki/api-cards/feishu-patch-docx-v1-documents-document-id-blocks-batch-update.md\n\n---\ntitle: \"批量更新块的内容\"\ntype: api-card\nstatus: stable\nupdated: 2026-05-17\nsource: source-doc\nmethod: PATCH\nendpoint: \"https://open.feishu.cn/open-apis/docx/v1/documents/:document_id/blocks/batch_update\"\nsource_files:\n  - \"references/source/api-packs/feishu/apidoc-feishu-doc-block-batchrevise.md\"\ntags: [api, feishu, lark, n8n, http-request]\n---\n\n# 批量更新块的内容\n\n## 何时读取\n\n当用户需要在 n8n 里通过 HTTP Request 节点调用这个飞书 / Lark API 时读取。\n\n## Endpoint\n\n- Method: `PATCH`\n- URL: `https://open.feishu.cn/open-apis/docx/v1/documents/:document_id/blocks/batch_update`\n\n## Auth / Headers\n\n- `Authorization: Bearer <tenant access token from previous auth step or environment>`\n- `Content-Type: application/json; charset=utf-8`\n- 不要在 workflow JSON 或示例里写入真实 app secret、tenant access token、user access token。\n\n## n8n HTTP Request 配置\n\n- Method: `PATCH`\n- URL: 将 `:path_param` 替换为 n8n expression，例如 `{{$json.app_token}}`。\n- Authentication: 通常选 `None`，用 headers 手动传 Bearer token；也可以封装为 n8n credential。\n- Send Headers: on\n- Send Body: 视接口请求体决定；写入 JSON 时使用官方字段结构。\n\n## 关键字段线索\n\n- 权限要求; **调用该 API 所需的权限。开启其中任意一项权限即可调用**; 开启任一权限即可 | 创建及编辑新版文档(docx:document); 编辑新版文档(docx:document:write_only)\n- 字段权限要求 | **注意事项**：该接口返回体中存在下列敏感字段，仅当开启对应的权限后才会返回；如果无需获取这些字段，则不建议申请; 获取用户 user ID(contact:user.employee_id:readonly)\n- document_revision_id | int | 否 | 要操作的文档版本。-1 表示文档最新版本。文档创建后，版本为 1。你需确保你已拥有文档的编辑权限。你可通过调用获取文档基本信息获取文档的最新 revision_id; **示例值**：-1; **默认值**：`-1`; **数据校验规则**：; - 最小值：`-1`\n\n## 注意事项\n\n- 权限要求; **调用该 API 所需的权限。开启其中任意一项权限即可调用**; 开启任一权限即可 | 创建及编辑新版文档(docx:document); 编辑新版文档(docx:document:write_only)\n- 字段权限要求 | **注意事项**：该接口返回体中存在下列敏感字段，仅当开启对应的权限后才会返回；如果无需获取这些字段，则不建议申请; 获取用户 user ID(contact:user.employee_id:readonly)\n- document_revision_id | int | 否 | 要操作的文档版本。-1 表示文档最新版本。文档创建后，版本为 1。你需确保你已拥有文档的编辑权限。你可通过调用获取文档基本信息获取文档的最新 revision_id; **示例值**：-1; **默认值**：`-1`; **数据校验规则**：; - 最小值：`-1`\n- 飞书接口经常同时受应用权限、文档权限、字段权限影响；403/400 时先核对权限和 token 类型。\n\n## 来源\n\n- `references/source/api-packs/feishu/apidoc-feishu-doc-block-batchrevise.md`\n\nArchive v1.0.0: 1324 files, 528723 bytes\n\nFiles: references/compiler/ai-document-compiler.md (4705b), references/compiler/card-templates.md (1526b), references/source/README.md (435b), references/templates/code-node-output.md (528b), references/templates/http-node-output.md (518b), references/templates/runbook-template.md (642b), references/templates/workflow-json-output.md (618b), references/toolbox/api-tester.md (1796b), references/toolbox/feishu-bitable-tools.md (2527b), references/toolbox/firecrawl-doc-ingest.md (2354b), references/wiki/api-cards/feishu-get-bitable-v1-apps-app-token-tables-table-id-fields.md (4917b), references/wiki/api-cards/feishu-get-docx-v1-documents-document-id-blocks.md (3253b), references/wiki/api-cards/feishu-patch-docx-v1-documents-document-id-blocks-batch-update.md (3087b), references/wiki/api-cards/feishu-patch-docx-v1-documents-document-id-blocks-block-id.md (3059b), references/wiki/api-cards/feishu-patch-drive-v1-files-file-token-comments-comment-id.md (2903b), references/wiki/api-cards/feishu-post-auth-v3-tenant-access-token-internal.md (1672b), references/wiki/api-cards/feishu-post-bitable-v1-apps-app-token-tables-table-id-fields.md (2374b), references/wiki/api-cards/feishu-post-bitable-v1-apps-app-token-tables-table-id-records-batch-create.md (5002b), references/wiki/api-cards/feishu-post-bitable-v1-apps-app-token-tables-table-id-records-batch-update.md (5002b), references/wiki/api-cards/feishu-post-bitable-v1-apps-app-token-tables-table-id-records-search.md (5128b), references/wiki/api-cards/feishu-post-bitable-v1-apps-app-token-tables-table-id-records.md (4960b), references/wiki/api-cards/feishu-put-bitable-v1-apps-app-token-tables-table-id-fields-field-id.md (2391b), references/wiki/api-cards/feishu-put-bitable-v1-apps-app-token-tables-table-id-records-record-id.md (4985b), references/wiki/api-cards/n8n-public-api-delete-community-packages-name.md (942b), references/wiki/api-cards/n8n-public-api-delete-credentials-id.md (880b), references/wiki/api-cards/n8n-public-api-delete-data-tables-datatableid-columns-columnid.md (933b), references/wiki/api-cards/n8n-public-api-delete-data-tables-datatableid-rows-delete.md (1047b), references/wiki/api-cards/n8n-public-api-delete-data-tables-datatableid.md (907b), references/wiki/api-cards/n8n-public-api-delete-executions-id.md (877b), references/wiki/api-cards/n8n-public-api-delete-projects-projectid-folders-folderid.md (1047b), references/wiki/api-cards/n8n-public-api-delete-projects-projectid-users-userid.md (992b), references/wiki/api-cards/n8n-public-api-delete-projects-projectid.md (899b), references/wiki/api-cards/n8n-public-api-delete-tags-id.md (869b), references/wiki/api-cards/n8n-public-api-delete-users-id.md (873b), references/wiki/api-cards/n8n-public-api-delete-variables-id.md (871b), references/wiki/api-cards/n8n-public-api-delete-workflows-id.md (871b), references/wiki/api-cards/n8n-public-api-get-community-packages.md (887b), references/wiki/api-cards/n8n-public-api-get-credentials-id.md (886b), references/wiki/api-cards/n8n-public-api-get-credentials-schema-credentialtypename.md (944b), references/wiki/api-cards/n8n-public-api-get-credentials.md (839b), references/wiki/api-cards/n8n-public-api-get-data-tables-datatableid-columns.md (934b), references/wiki/api-cards/n8n-public-api-get-data-tables-datatableid-rows.md (1030b), references/wiki/api-cards/n8n-public-api-get-data-tables-datatableid.md (897b), references/wiki/api-cards/n8n-public-api-get-data-tables.md (918b), references/wiki/api-cards/n8n-public-api-get-discover.md (995b), references/wiki/api-cards/n8n-public-api-get-executions-id-tags.md (881b), references/wiki/api-cards/n8n-public-api-get-executions-id.md (893b), references/wiki/api-cards/n8n-public-api-get-executions.md (975b), references/wiki/api-cards/n8n-public-api-get-insights-summary.md (991b), references/wiki/api-cards/n8n-public-api-get-projects-projectid-folders-folderid.md (976b), references/wiki/api-cards/n8n-public-api-get-projects-projectid-folders.md (1128b), references/wiki/api-cards/n8n-public-api-get-projects-projectid-users.md (913b), references/wiki/api-cards/n8n-public-api-get-projects.md (835b), references/wiki/api-cards/n8n-public-api-get-tags-id.md (851b), references/wiki/api-cards/n8n-public-api-get-tags.md (827b), references/wiki/api-cards/n8n-public-api-get-users-id.md (845b), references/wiki/api-cards/n8n-public-api-get-users.md (833b), references/wiki/api-cards/n8n-public-api-get-variables.md (881b), references/wiki/api-cards/n8n-public-api-get-workflows-id-tags.md (884b), references/wiki/api-cards/n8n-public-api-get-workflows-id-versionid.md (939b), references/wiki/api-cards/n8n-public-api-get-workflows-id.md (879b), references/wiki/api-cards/n8n-public-api-get-workflows.md (1020b), references/wiki/api-cards/n8n-public-api-patch-community-packages-name.md (935b), references/wiki/api-cards/n8n-public-api-patch-credentials-id.md (939b), references/wiki/api-cards/n8n-public-api-patch-data-tables-datatableid-columns-columnid.md (972b), references/wiki/api-cards/n8n-public-api-patch-data-tables-datatableid-rows-update.md (962b), references/wiki/api-cards/n8n-public-api-patch-data-tables-datatableid.md (946b), references/wiki/api-cards/n8n-public-api-patch-projects-projectid-folders-folderid.md (997b), references/wiki/api-cards/n8n-public-api-patch-projects-projectid-users-userid.md (1005b), references/wiki/api-cards/n8n-public-api-patch-users-id-role.md (914b), references/wiki/api-cards/n8n-public-api-post-audit.md (868b), references/wiki/api-cards/n8n-public-api-post-community-packages.md (910b), references/wiki/api-cards/n8n-public-api-post-credentials-id-test.md (882b), references/wiki/api-cards/n8n-public-api-post-credentials.md (939b), references/wiki/api-cards/n8n-public-api-post-data-tables-datatableid-columns.md (974b), references/wiki/api-cards/n8n-public-api-post-data-tables-datatableid-rows-upsert.md (962b), references/wiki/api-cards/n8n-public-api-post-data-tables-datatableid-rows.md (951b), references/wiki/api-cards/n8n-public-api-post-data-tables.md (924b), references/wiki/api-cards/n8n-public-api-post-executions-id-retry.md (906b), references/wiki/api-cards/n8n-public-api-post-executions-id-stop.md (879b) (+924 more)\n\nFile v1.0.0:references/source/README.md\n\n# Compact Source Note\n\nThis compact registry package omits raw source corpora to fit upload limits. It keeps the compiled indexes, API cards, short node/concept/recipe cards, compiler prompt, templates, and toolbox scripts. The full local build remains at `sessions/20260517_n8n_master_skill_build/n8n-master/`; the text-source registry build remains at `sessions/20260517_n8n_master_skill_build/dist/n8n-master-registry/n8n-master/`.\n\nFile v1.0.0:references/compiler/ai-document-compiler.md\n\n# AI Document Compiler\n\nUse this prompt when the user asks to add, absorb, compile, update, or reorganize documentation for `n8n-master`.\n\nThe compiler is an AI workflow. Scripts may create inventories and hashes, but they must not decide what a document means or silently generate final wiki knowledge.\n\n## When To Use\n\n- The user adds new docs under `references/source/`.\n- The user asks to ingest online API docs with Firecrawl and then compile them.\n- The user asks why a card is missing and wants the Skill to learn from source docs.\n- Official docs were refreshed and the wiki layer needs updating.\n- A real Q&A revealed a reusable node pattern, API detail, or workflow recipe.\n\n## Source First\n\nBefore writing any wiki file:\n\n1. Identify the exact source files.\n2. Read enough of the source to understand the object model, limits, parameters, and examples.\n3. Record the source path in the compiled card.\n4. If source material is unclear, mark the compiled card `status: draft` and name the uncertainty.\n5. Never invent node parameters, API fields, credentials, permissions, response paths, or limits.\n\n## Classification\n\nClassify each source into one primary output type:\n\n| Source kind | Compile to | Examples |\n|---|---|---|\n| n8n node docs | `references/wiki/nodes/` | HTTP Request, Webhook, Google Sheets, Slack Trigger |\n| n8n concept docs | `references/wiki/concepts/` | expressions, item linking, binary data, queue mode |\n| external API docs | `references/wiki/api-cards/` | Feishu Base add record, Stripe create payment link |\n| reusable workflow | `references/wiki/recipes/` | webhook to Base, API pagination, human review queue |\n| useful Q&A | `references/wiki/qa/` | real solved issue, verified troubleshooting answer |\n| raw-only material | keep in `references/source/` | release notes, large archive, docs not yet understood |\n\nIf a document covers multiple concerns, write one primary card and link to follow-up cards instead of stuffing everything into one long file.\n\n## Card Rules\n\nEvery compiled wiki card should include:\n\n```yaml\n---\ntitle: Short title\ntype: node-card | concept-card | api-card | recipe | qa\nstatus: draft | stable\nupdated: YYYY-MM-DD\nsource: official-doc | source-doc | local-verification | qa\ntags: [...]\n---\n```\n\nBody order:\n\n1. `# Title`\n2. `## 何时读取`\n3. `## 核心要点`\n4. Task-specific sections:\n   - Node card: parameters, operations, credentials, input/output, common issues.\n   - API card: endpoint, auth, params, body, n8n HTTP Request config, response paths, permissions/pitfalls.\n   - Concept card: definition, decision rules, examples, common mistakes.\n   - Recipe: node chain, data contract, key expressions, error handling, source cards.\n5. `## 来源`\n\nKeep cards compact. Link back to source files for full detail.\n\n## Index Updates\n\nAfter writing or changing cards, update the relevant index:\n\n- `references/wiki/index/ALL-Nodes.md`\n- `references/wiki/index/ALL-Concepts.md`\n- `references/wiki/index/ALL-APIs.md`\n- `references/wiki/index/ALL-Recipes.md`\n- `references/wiki/index/ALL-QAs.md`\n\nAlso append a short entry to:\n\n- `references/wiki/index/Compilation-Log.md`\n\nDo not create platform-specific duplicate indexes such as `ALL-APIs-Feishu.md`. Use tags and table columns inside the single `ALL-APIs.md` instead.\n\n## Future Source Ingestion\n\nWhen the user provides new docs:\n\n1. Put original files under `references/source/<doc-set>/` or `references/source/api-packs/<platform>/raw/`.\n2. If files came from Firecrawl, keep the generated `manifest.json`.\n3. Run or update a source inventory only to detect files and hashes.\n4. AI reads the new/changed source files.\n5. AI writes or updates wiki cards.\n6. AI updates indexes and compilation log.\n7. AI reports what is compiled, what remains source-only, and what is uncertain.\n\n## Compilation Prompt\n\nUse this exact working prompt internally:\n\n```text\nYou are the n8n-master documentation compiler.\n\nGoal: turn source documentation into compact, source-grounded wiki cards for future n8n workflow building.\n\nRules:\n- Read the source files first.\n- Do not invent parameters, fields, credentials, endpoints, response paths, limits, or examples.\n- Prefer several small cards over one large card.\n- Keep source files unchanged.\n- Mark uncertain content as draft.\n- Update all relevant indexes.\n- Append to Compilation-Log.md.\n- If a source is not worth compiling yet, record it as source-only and explain why.\n\nFor each source file or source group:\n1. Classify it as node, concept, API, recipe, Q&A, or source-only.\n2. Extract only durable operational knowledge.\n3. Write the correct wiki card.\n4. Include local source paths.\n5. Update indexes.\n6. Report compiled files and gaps.\n```\n\nFile v1.0.0:references/compiler/card-templates.md\n\n# Compiler Card Templates\n\n## Node Card\n\n```markdown\n---\ntitle: Node name\ntype: node-card\nstatus: draft\nupdated: YYYY-MM-DD\nsource: official-doc\ntags: [n8n, node]\n---\n\n# Node name\n\n## 何时读取\n\n...\n\n## 核心要点\n\n- ...\n\n## 关键参数 / 操作\n\n- ...\n\n## n8n 使用建议\n\n- ...\n\n## 常见坑\n\n- ...\n\n## 来源\n\n- Local: `references/source/...`\n```\n\n## API Card\n\n````markdown\n---\ntitle: Platform API name\ntype: api-card\nstatus: draft\nupdated: YYYY-MM-DD\nsource: source-doc\ntags: [api, platform, n8n]\n---\n\n# Platform API name\n\n## Endpoint\n\n- Method:\n- URL:\n\n## Auth / Headers\n\n- ...\n\n## Params\n\n- Path:\n- Query:\n\n## Body\n\n```json\n{}\n```\n\n## n8n HTTP Request\n\n- Method:\n- URL expression:\n- Headers:\n- Body Content Type:\n- Body:\n\n## Read Response\n\n- ...\n\n## Permissions / Pitfalls\n\n- ...\n\n## Source\n\n- Local: `references/source/...`\n````\n\n## Concept Card\n\n```markdown\n---\ntitle: Concept\ntype: concept-card\nstatus: draft\nupdated: YYYY-MM-DD\nsource: official-doc\ntags: [n8n, concept]\n---\n\n# Concept\n\n## 何时读取\n\n...\n\n## 定义\n\n...\n\n## 决策规则\n\n- ...\n\n## 示例\n\n...\n\n## 常见坑\n\n- ...\n\n## 来源\n\n- Local: `references/source/...`\n```\n\n## Recipe\n\n````markdown\n---\ntitle: Recipe\ntype: recipe\nstatus: draft\nupdated: YYYY-MM-DD\nsource: compiled\ntags: [n8n, workflow]\n---\n\n# Recipe\n\n## 何时读取\n\n...\n\n## 节点链路\n\n```text\nTrigger -> ...\n```\n\n## 数据契约\n\n- Input:\n- Output:\n\n## 关键配置\n\n- ...\n\n## 错误处理\n\n- ...\n\n## 来源\n\n- Local: `references/wiki/...`\n- Local: `references/source/...`\n````\n\nFile v1.0.0:references/templates/code-node-output.md\n\n# Code Node Output\n\nUse this shape when producing n8n Code node JavaScript.\n\n````markdown\n## 输入假设\n\n- Mode:\n- Incoming items:\n- Required fields:\n\n## Code node JavaScript\n\n```javascript\nconst items = $input.all();\n\nreturn items.map((item) => ({\n  json: {\n    ...item.json,\n  },\n}));\n```\n\n## 输出结构\n\n```json\n[\n  {\n    \"json\": {}\n  }\n]\n```\n\n## 注意事项\n\n- Keep secrets in credentials or environment variables.\n- Return valid n8n items.\n- Preserve item pairing when downstream nodes rely on per-item mapping.\n````\n\nFile v1.0.0:references/templates/http-node-output.md\n\n# HTTP Request Node Output\n\nUse this shape when producing n8n HTTP Request node guidance.\n\n```markdown\n## HTTP Request 节点配置\n\n| 配置项 | 值 |\n|---|---|\n| Method |  |\n| URL |  |\n| Authentication |  |\n| Headers |  |\n| Query Params |  |\n| Body Content Type |  |\n| Body |  |\n| Response Options |  |\n\n## n8n 表达式\n\n```text\n{{ $json.example }}\n```\n\n## 返回值读取\n\n- `{{$json...}}`\n\n## 调试检查\n\n- 状态码：\n- 权限：\n- 字段类型：\n- 分页：\n- 幂等：\n\n## 来源\n\n- `references/...`\n```\n\nFile v1.0.0:references/templates/runbook-template.md\n\n# n8n Workflow Runbook Template\n\n## Purpose\n\n- What the workflow does and why it exists.\n\n## Triggers\n\n- Cron / Webhook / Manual\n- Schedule, timezone, and expected frequency.\n\n## Inputs\n\n- Source systems and credentials. Reference env vars or credential names only.\n\n## Outputs\n\n- Where results go, including naming and retention.\n\n## Idempotency\n\n- Dedup key:\n- Safe rerun behavior:\n\n## Error Handling\n\n- Retry policy:\n- Failure notifications:\n- Review queue link/location:\n\n## Logging And Audit\n\n- Run ID:\n- What is logged per run:\n- Where logs are stored:\n\n## Operational Checks\n\n- Expected counts/thresholds:\n- Stop-the-line conditions:\n\nFile v1.0.0:references/templates/workflow-json-output.md\n\n# Workflow JSON Output\n\nUse this shape when producing importable or copy-paste n8n workflow JSON.\n\n```markdown\n## 导入前说明\n\n- JSON 不包含真实 secrets。\n- Credentials 使用占位名称，导入后需要在 n8n UI 中重新绑定。\n- 默认 `active: false`。\n- 写入型节点建议先手动执行或 dry-run。\n\n## Workflow JSON\n\n```json\n{\n  \"name\": \"Workflow name\",\n  \"nodes\": [],\n  \"connections\": {},\n  \"settings\": {},\n  \"active\": false\n}\n```\n\n## 验证清单\n\n- [ ] Trigger 正确\n- [ ] Credentials 已绑定\n- [ ] 样例输入测试通过\n- [ ] 写入节点已 dry-run\n- [ ] 失败路径可见\n```\n\nFile v1.0.0:references/toolbox/api-tester.md\n\n# API Tester Toolbox\n\n## 何时使用\n\n用 `scripts/toolbox/api_tester.py` 在写 n8n HTTP Request 节点前快速验证一个接口：方法、URL、headers、query、JSON body、raw body、timeout。它适合做轻量 Postman，不适合做压测、OAuth 浏览器授权或长期接口监控。\n\n## 示例命令\n\n```bash\npython3 scripts/toolbox/api_tester.py \\\n  --method POST \\\n  --url \"https://example.com/api/items\" \\\n  --headers '{\"Authorization\":\"Bearer token_here\",\"Content-Type\":\"application/json\"}' \\\n  --query '{\"limit\":10}' \\\n  --body-json '{\"name\":\"demo\"}' \\\n  --print-n8n-config\n```\n\n只检查参数、不发网络请求：\n\n```bash\npython3 scripts/toolbox/api_tester.py \\\n  --method GET \\\n  --url \"https://example.com/api/items\" \\\n  --query '{\"q\":\"n8n\"}' \\\n  --dry-run\n```\n\n从文件读取 JSON：\n\n```bash\npython3 scripts/toolbox/api_tester.py \\\n  --method POST \\\n  --url \"https://example.com/webhook\" \\\n  --headers @headers.json \\\n  --body-json @payload.json \\\n  --n8n-config-out /tmp/http-request-node.json\n```\n\n## 输出与 n8n 草稿\n\n`--print-n8n-config` 或 `--n8n-config-out` 会生成 n8n `HTTP Request` 节点的 `parameters` 草稿。草稿会保留 method、url、headers、query、body 结构，但敏感值会被替换为 `<redacted>`，导入或手工复制到 n8n 前要改成 n8n credential、环境变量或表达式。\n\n## 安全边界\n\n- 默认会脱敏 key 名包含 `authorization`、`cookie`、`token`、`secret`、`password`、`api_key` 等字段的值。\n- 脱敏是启发式保护，不保证能识别藏在普通字段里的密钥；不要把真实 token 放进要提交到仓库的命令或输出文件。\n- `--dry-run` 不发请求，适合先给其他 agent 或用户审查请求形态。\n- 脚本只使用 Python 标准库，不保存请求历史。\n\nFile v1.0.0:references/toolbox/feishu-bitable-tools.md\n\n# Feishu Bitable Toolbox\n\n## 何时使用\n\n这组工具用于 n8n workflow 设计前后处理飞书多维表格字段结构：\n\n- `feishu_get_bitable_schema.py`：读取一个表的字段列表，输出 Markdown 给人看，或 JSON 给后续脚本复用。\n- `feishu_create_bitable_fields.py`：从 schema JSON 生成字段创建请求；默认 dry-run，只有显式加 `--execute` 才会写入飞书。\n\n它们只处理字段 schema，不处理记录写入、附件上传、审批、文档块或飞书机器人消息。\n\n## 环境变量\n\n```bash\nexport FEISHU_APP_ID=\"cli_xxx\"\nexport FEISHU_APP_SECRET=\"xxx\"\n```\n\n脚本不会打印 `FEISHU_APP_SECRET` 或 tenant access token。终端命令涉及网络时，按项目全局规则保留本地代理环境。\n\n## 获取字段 Schema\n\n输出 Markdown：\n\n```bash\npython3 scripts/toolbox/feishu_get_bitable_schema.py \\\n  --app-token \"base_or_app_token\" \\\n  --table-id \"tblxxxx\" \\\n  --format markdown \\\n  --output /tmp/bitable-schema.md\n```\n\n输出 JSON，供创建字段脚本复用：\n\n```bash\npython3 scripts/toolbox/feishu_get_bitable_schema.py \\\n  --app-token \"base_or_app_token\" \\\n  --table-id \"tblxxxx\" \\\n  --format json \\\n  --output /tmp/bitable-schema.json\n```\n\n## 生成或执行字段创建\n\n默认 dry-run，不写入：\n\n```bash\npython3 scripts/toolbox/feishu_create_bitable_fields.py \\\n  --schema /tmp/bitable-schema.json \\\n  --app-token \"target_base_or_app_token\" \\\n  --table-id \"target_tblxxxx\"\n```\n\n确认无误后执行：\n\n```bash\npython3 scripts/toolbox/feishu_create_bitable_fields.py \\\n  --schema /tmp/bitable-schema.json \\\n  --app-token \"target_base_or_app_token\" \\\n  --table-id \"target_tblxxxx\" \\\n  --execute\n```\n\n执行模式会先读取目标表已有字段名并跳过同名字段。需要关闭这个保护时加 `--no-skip-existing`。\n\n## 字段限制与安全边界\n\n- 创建字段脚本默认跳过系统/只读字段类型，例如创建时间、更新时间、创建人、修改人、自动编号。\n- 如果字段 `ui_type` 显示 `dynamic` 或 `not_support`，默认跳过。动态选项字段常见写入限制，建议改为静态选项或交给 n8n 服务端逻辑处理。\n- 附件字段可以作为 schema 字段存在，但记录附件写入不能通过普通 record upsert 完成，通常需要专用附件接口或 n8n 中间层。\n- 所有写入默认 dry-run；不要在没有审查 `planned_requests` 的情况下加 `--execute`。\n- 输出中的 app token 会被脱敏，schema JSON 不保存 app secret 或 tenant access token。\n\nFile v1.0.0:references/toolbox/firecrawl-doc-ingest.md\n\n# Firecrawl Doc Ingest Toolbox\n\n## 何时使用\n\n用 `scripts/toolbox/firecrawl_ingest_docs.py` 把外部 URL 抓成 Markdown，保存到 Skill 的 `references/source/` 目录，再交给 AI compiler 做 wiki、api-card 或 recipe。它适合单页或少量页面的文档抓取，不负责站点级 crawl 队列、去重调度或内容质量清洗。\n\n## 环境变量\n\n```bash\nexport FIRECRAWL_API_KEY=\"fc-...\"\n```\n\n脚本不会打印 API key 或 Authorization header。\n\n## 示例命令\n\n先 dry-run 看请求形态和目标文件名：\n\n```bash\npython3 scripts/toolbox/firecrawl_ingest_docs.py \\\n  \"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.httprequest/\" \\\n  --source-dir references/source/api-packs/<platform>/raw \\\n  --dry-run\n```\n\n真实抓取并写入 Markdown 和 manifest：\n\n```bash\npython3 scripts/toolbox/firecrawl_ingest_docs.py \\\n  \"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.httprequest/\" \\\n  --source-dir references/source/api-packs/<platform>/raw\n```\n\n传入额外 Firecrawl 请求参数：\n\n```bash\npython3 scripts/toolbox/firecrawl_ingest_docs.py \\\n  \"https://docs.n8n.io/\" \\\n  --source-dir references/source/api-packs/<platform>/raw \\\n  --request-json '{\"onlyMainContent\":true,\"waitFor\":1000}' \\\n  --overwrite\n```\n\n## API 形态\n\n脚本默认使用 Firecrawl 当前文档中的 `POST https://api.firecrawl.dev/v2/scrape`，请求体默认是：\n\n```json\n{\n  \"url\": \"https://example.com\",\n  \"formats\": [\"markdown\"]\n}\n```\n\n如果团队使用自托管 Firecrawl 或旧版 API，可以通过 `--endpoint` 覆盖；如果响应里没有 `markdown` 或 `content` 字段，脚本会保守失败，并打印脱敏后的响应结构，提醒调用者调整 `--endpoint` 或 `--request-json`。\n\n## 输出\n\n每个 URL 会写成一个稳定文件名：\n\n```text\n001-docs-n8n-io-path-a1b2c3d4.md\n```\n\n同时写入 `manifest.json`，记录 URL、文件名、抓取时间、endpoint、formats、metadata 和 Markdown sha256。manifest 不包含 API key。\n\n## 安全边界\n\n- 默认不覆盖已有 Markdown；需要覆盖时显式加 `--overwrite`。\n- `--dry-run` 不发网络请求，也不创建文件。\n- Firecrawl 结果仍需 AI compiler 检查；不要把抓取结果直接当作已验证知识。\n- 对需要登录、含隐私或版权敏感的页面，不要用此脚本抓取进 Skill。\n\nFile v1.0.0:references/wiki/api-cards/feishu-get-bitable-v1-apps-app-token-tables-table-id-fields.md\n\n---\ntitle: \"列出字段\"\ntype: api-card\nstatus: stable\nupdated: 2026-05-17\nsource: source-doc\nmethod: GET\nendpoint: \"https://open.feishu.cn/open-apis/bitable/v1/apps/:app_token/tables/:table_id/fields\"\nsource_files:\n  - \"references/source/api-packs/feishu/apidoc-feishu-base-field-getfields.md\"\ntags: [api, feishu, lark, n8n, http-request]\n---\n\n# 列出字段\n\n## 何时读取\n\n当用户需要在 n8n 里通过 HTTP Request 节点调用这个飞书 / Lark API 时读取。\n\n## Endpoint\n\n- Method: `GET`\n- URL: `https://open.feishu.cn/open-apis/bitable/v1/apps/:app_token/tables/:table_id/fields`\n\n## Auth / Headers\n\n- `Authorization: Bearer {{$json.tenant_access_token || $vars.FEISHU_TENANT_ACCESS_TOKEN}}`\n- `Content-Type: application/json; charset=utf-8`\n- 不要在 workflow JSON 或示例里写入真实 app secret、tenant access token、user access token。\n\n## n8n HTTP Request 配置\n\n- Method: `GET`\n- URL: 将 `:path_param` 替换为 n8n expression，例如 `{{$json.app_token}}`。\n- Authentication: 通常选 `None`，用 headers 手动传 Bearer token；也可以封装为 n8n credential。\n- Send Headers: on\n- Send Body: 视接口请求体决定；写入 JSON 时使用官方字段结构。\n\n## 关键字段线索\n\n- 权限要求; **调用该 API 所需的权限。开启其中任意一项权限即可调用**; 开启任一权限即可 | 获取字段信息(base:field:read); 查看、评论、编辑和管理多维表格(bitable:app); 查看、评论和导出多维表格(bitable:app:readonly)\n- 200 | 1254301 | OperationTypeError | 多维表格未开启高级权限或不支持开启高级权限\n- 403 | 1254302 | Permission denied. | 调用身份缺少多维表格的高级权限。你需给予调用身份数据表的 **可管理** 权限或多维表格的 **可管理** 等权限，再重新调用。具体步骤如下所示：; - 对用户授予高级权限，你可在 **多维表格高级权限设置** 中添加用户，为用户开通足够权限；或在多维表格页面右上方 **分享** 入口为当前用户添加可管理权限。详情参考飞书帮助中心文档使用多维表格高级权限。; ![](//sf3-cn.feishucdn.com/obj/open-platform-opendoc/df3911b4f747d75914f35a46962d667d_dAsfLjv3QC.png?height=546&lazyload=true&maxWidth=550); - 对应用授予高级权限，你需通过多维表格页面右上方 **「...」** -> **「...更多」** ->**「添加文档应用」** 入口为应用添加可管理权限。; ![](//sf3-cn.feishucdn.com/obj/open-platform-opendoc/22c027f63c540592d3ca8f41d48bb107_CSas7OYJBR.png?height=1994&lazyload=true&maxWidth=550&width=3278); !image.png; **注意**：; 在 **添加文档应用** 前，你需确保目标应用至少开通了一个多维表格的 API 权限。否则你将无法在文档应用窗口搜索到目标应用。 ; - 你也可以在 **多维表格高级权限设置** 中添加用户或一个包含应用的群组，给予这个群自定义的读写等权限。\n\n## 注意事项\n\n- 权限要求; **调用该 API 所需的权限。开启其中任意一项权限即可调用**; 开启任一权限即可 | 获取字段信息(base:field:read); 查看、评论、编辑和管理多维表格(bitable:app); 查看、评论和导出多维表格(bitable:app:readonly)\n- 200 | 1254301 | OperationTypeError | 多维表格未开启高级权限或不支持开启高级权限\n- 403 | 1254302 | Permission denied. | 调用身份缺少多维表格的高级权限。你需给予调用身份数据表的 **可管理** 权限或多维表格的 **可管理** 等权限，再重新调用。具体步骤如下所示：; - 对用户授予高级权限，你可在 **多维表格高级权限设置** 中添加用户，为用户开通足够权限；或在多维表格页面右上方 **分享** 入口为当前用户添加可管理权限。详情参考飞书帮助中心文档使用多维表格高级权限。; ![](//sf3-cn.feishucdn.com/obj/open-platform-opendoc/df3911b4f747d75914f35a46962d667d_dAsfLjv3QC.png?height=546&lazyload=true&maxWidth=550); - 对应用授予高级权限，你需通过多维表格页面右上方 **「...」** -> **「...更多」** ->**「添加文档应用」** 入口为应用添加可管理权限。; ![](//sf3-cn.feishucdn.com/obj/open-platform-opendoc/22c027f63c540592d3ca8f41d48bb107_CSas7OYJBR.png?height=1994&lazyload=true&maxWidth=550&width=3278); !image.png; **注意**：; 在 **添加文档应用** 前，你需确保目标应用至少开通了一个多维表格的 API 权限。否则你将无法在文档应用窗口搜索到目标应用。 ; - 你也可以在 **多维表格高级权限设置** 中添加用户或一个包含应用的群组，给予这个群自定义的读写等权限。\n- 飞书接口经常同时受应用权限、文档权限、字段权限影响；403/400 时先核对权限和 token 类型。\n\n## 来源\n\n- `references/source/api-packs/feishu/apidoc-feishu-base-field-getfields.md`\n\nFile v1.0.0:references/wiki/api-cards/feishu-get-docx-v1-documents-document-id-blocks.md\n\n---\ntitle: \"获取文档所有块\"\ntype: api-card\nstatus: stable\nupdated: 2026-05-17\nsource: source-doc\nmethod: GET\nendpoint: \"https://open.feishu.cn/open-apis/docx/v1/documents/:document_id/blocks\"\nsource_files:\n  - \"references/source/api-packs/feishu/apidoc-feishu-get-doc.md\"\ntags: [api, feishu, lark, n8n, http-request]\n---\n\n# 获取文档所有块\n\n## 何时读取\n\n当用户需要在 n8n 里通过 HTTP Request 节点调用这个飞书 / Lark API 时读取。\n\n## Endpoint\n\n- Method: `GET`\n- URL: `https://open.feishu.cn/open-apis/docx/v1/documents/:document_id/blocks`\n\n## Auth / Headers\n\n- `Authorization: Bearer {{$json.tenant_access_token || $vars.FEISHU_TENANT_ACCESS_TOKEN}}`\n- `Content-Type: application/json; charset=utf-8`\n- 不要在 workflow JSON 或示例里写入真实 app secret、tenant access token、user access token。\n\n## n8n HTTP Request 配置\n\n- Method: `GET`\n- URL: 将 `:path_param` 替换为 n8n expression，例如 `{{$json.app_token}}`。\n- Authentication: 通常选 `None`，用 headers 手动传 Bearer token；也可以封装为 n8n credential。\n- Send Headers: on\n- Send Body: 视接口请求体决定；写入 JSON 时使用官方字段结构。\n\n## 关键字段线索\n\n- 权限要求; **调用该 API 所需的权限。开启其中任意一项权限即可调用**; 开启任一权限即可 | 创建及编辑新版文档(docx:document); 查看新版文档(docx:document:readonly)\n- 字段权限要求 | **注意事项**：该接口返回体中存在下列敏感字段，仅当开启对应的权限后才会返回；如果无需获取这些字段，则不建议申请; 获取用户 user ID(contact:user.employee_id:readonly)\n- document_revision_id | int | 否 | 查询的文档版本，-1 表示文档最新版本。文档创建后，版本为 1。; - 若查询的版本为文档最新版本，则需要持有文档的阅读权限；; - 若查询的版本为文档的历史版本，则需要持有文档的编辑权限。; 你可通过调用获取文档基本信息获取文档的 revision_id; **示例值**：-1; **默认值**：`-1`; **数据校验规则**：; - 最小值：`-1`\n\n## 注意事项\n\n- 权限要求; **调用该 API 所需的权限。开启其中任意一项权限即可调用**; 开启任一权限即可 | 创建及编辑新版文档(docx:document); 查看新版文档(docx:document:readonly)\n- 字段权限要求 | **注意事项**：该接口返回体中存在下列敏感字段，仅当开启对应的权限后才会返回；如果无需获取这些字段，则不建议申请; 获取用户 user ID(contact:user.employee_id:readonly)\n- document_revision_id | int | 否 | 查询的文档版本，-1 表示文档最新版本。文档创建后，版本为 1。; - 若查询的版本为文档最新版本，则需要持有文档的阅读权限；; - 若查询的版本为文档的历史版本，则需要持有文档的编辑权限。; 你可通过调用获取文档基本信息获取文档的 revision_id; **示例值**：-1; **默认值**：`-1`; **数据校验规则**：; - 最小值：`-1`\n- 飞书接口经常同时受应用权限、文档权限、字段权限影响；403/400 时先核对权限和 token 类型。\n\n## 来源\n\n- `references/source/api-packs/feishu/apidoc-feishu-get-doc.md`","readmeExcerpt":"Skill: n8n Master Owner: billzhuang6569 Summary: Answers n8n questions and builds n8n workflows, node configurations, Code node JavaScript, HTTP Request setups, API integrations, toolbox-assisted API tests,... Tags: api:1.0.2, automation:1.0.2, feishu:1.0.2, lark:1.0.2, latest:1.0.2, n8n:1.0.2, workflow:1.0.2 Version history: v1.0.2 | 2026-05-17T09:58:36.901Z | user Wiki-only release: remove raw source corpora while ","codeSnippets":[],"executableExamples":[{"language":"yaml","snippet":"---\ntitle: Short title\ntype: node-card | concept-card | api-card | recipe | qa\nstatus: draft | stable\nupdated: YYYY-MM-DD\nsource: official-doc | source-doc | local-verification | qa\ntags: [...]\n---"},{"language":"text","snippet":"You are the n8n-master documentation compiler.\n\nGoal: turn source documentation into compact, source-grounded wiki cards for future n8n workflow building.\n\nRules:\n- Read the source files first.\n- Do not invent parameters, fields, credentials, endpoints, response paths, limits, or examples.\n- Prefer several small cards over one large card.\n- Keep source files unchanged.\n- Mark uncertain content as draft.\n- Update all relevant indexes.\n- Append to Compilation-Log.md.\n- If a source is not worth compiling yet, record it as source-only and explain why.\n\nFor each source file or source group:\n1. Classify it as node, concept, API, recipe, Q&A, or source-only.\n2. Extract only durable operational knowledge.\n3. Write the correct wiki card.\n4. Include local source paths.\n5. Update indexes.\n6. Report compiled files and gaps."},{"language":"markdown","snippet":"---\ntitle: Node name\ntype: node-card\nstatus: draft\nupdated: YYYY-MM-DD\nsource: official-doc\ntags: [n8n, node]\n---\n\n# Node name\n\n## 何时读取\n\n...\n\n## 核心要点\n\n- ...\n\n## 关键参数 / 操作\n\n- ...\n\n## n8n 使用建议\n\n- ...\n\n## 常见坑\n\n- ...\n\n## 来源\n\n- Local: `references/source/...`"},{"language":"markdown","snippet":"---\ntitle: Platform API name\ntype: api-card\nstatus: draft\nupdated: YYYY-MM-DD\nsource: source-doc\ntags: [api, platform, n8n]\n---\n\n# Platform API name\n\n## Endpoint\n\n- Method:\n- URL:\n\n## Auth / Headers\n\n- ...\n\n## Params\n\n- Path:\n- Query:\n\n## Body"},{"language":"text","snippet":"## n8n HTTP Request\n\n- Method:\n- URL expression:\n- Headers:\n- Body Content Type:\n- Body:\n\n## Read Response\n\n- ...\n\n## Permissions / Pitfalls\n\n- ...\n\n## Source\n\n- Local: `references/source/...`"},{"language":"markdown","snippet":"---\ntitle: Concept\ntype: concept-card\nstatus: draft\nupdated: YYYY-MM-DD\nsource: official-doc\ntags: [n8n, concept]\n---\n\n# Concept\n\n## 何时读取\n\n...\n\n## 定义\n\n...\n\n## 决策规则\n\n- ...\n\n## 示例\n\n...\n\n## 常见坑\n\n- ...\n\n## 来源\n\n- Local: `references/source/...`"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"references/compiler/ai-document-compiler.md","content":"# AI Document Compiler\n\nUse this prompt when the user asks to add, absorb, compile, update, or reorganize documentation for `n8n-master`.\n\nThe compiler is an AI workflow. Scripts may create inventories and hashes, but they must not decide what a document means or silently generate final wiki knowledge.\n\n## When To Use\n\n- The user adds new docs under `references/source/`.\n- The user asks to ingest online API docs with Firecrawl and then compile them.\n- The user asks why a card is missing and wants the Skill to learn from source docs.\n- Official docs were refreshed and the wiki layer needs updating.\n- A real Q&A revealed a reusable node pattern, API detail, or workflow recipe.\n\n## Source First\n\nBefore writing any wiki file:\n\n1. Identify the exact source files.\n2. Read enough of the source to understand the object model, limits, parameters, and examples.\n3. Record the source path in the compiled card.\n4. If source material is unclear, mark the compiled card `status: draft` and name the uncertainty.\n5. Never invent node parameters, API fields, credentials, permissions, response paths, or limits.\n\n## Classification\n\nClassify each source into one primary output type:\n\n| Source kind | Compile to | Examples |\n|---|---|---|\n| n8n node docs | `references/wiki/nodes/` | HTTP Request, Webhook, Google Sheets, Slack Trigger |\n| n8n concept docs | `references/wiki/concepts/` | expressions, item linking, binary data, queue mode |\n| external API docs | `references/wiki/api-cards/` | Feishu Base add record, Stripe create payment link |\n| reusable workflow | `references/wiki/recipes/` | webhook to Base, API pagination, human review queue |\n| useful Q&A | `references/wiki/qa/` | real solved issue, verified troubleshooting answer |\n| raw-only material | keep in `references/source/` | release notes, large archive, docs not yet understood |\n\nIf a document covers multiple concerns, write one primary card and link to follow-up cards instead of stuffing everything into one long file.\n\n## Card Rules\n\nEvery compiled wiki card should include:\n\n```yaml\n---\ntitle: Short title\ntype: node-card | concept-card | api-card | recipe | qa\nstatus: draft | stable\nupdated: YYYY-MM-DD\nsource: official-doc | source-doc | local-verification | qa\ntags: [...]\n---\n```\n\nBody order:\n\n1. `# Title`\n2. `## 何时读取`\n3. `## 核心要点`\n4. Task-specific sections:\n   - Node card: parameters, operations, credentials, input/output, common issues.\n   - API card: endpoint, auth, params, body, n8n HTTP Request config, response paths, permissions/pitfalls.\n   - Concept card: definition, decision rules, examples, common mistakes.\n   - Recipe: node chain, data contract, key expressions, error handling, source cards.\n5. `## 来源`\n\nKeep cards compact. Link back to source files for full detail.\n\n## Index Updates\n\nAfter writing or changing cards, update the relevant index:\n\n- `references/wiki/index/ALL-Nodes.md`\n- `references/wiki/index/ALL-Concepts.md`\n- `references/wiki/index/ALL-APIs.md`\n- `references/wiki/index/ALL-Recip"},{"path":"references/compiler/card-templates.md","content":"# Compiler Card Templates\n\n## Node Card\n\n```markdown\n---\ntitle: Node name\ntype: node-card\nstatus: draft\nupdated: YYYY-MM-DD\nsource: official-doc\ntags: [n8n, node]\n---\n\n# Node name\n\n## 何时读取\n\n...\n\n## 核心要点\n\n- ...\n\n## 关键参数 / 操作\n\n- ...\n\n## n8n 使用建议\n\n- ...\n\n## 常见坑\n\n- ...\n\n## 来源\n\n- Local: `references/source/...`\n```\n\n## API Card\n\n````markdown\n---\ntitle: Platform API name\ntype: api-card\nstatus: draft\nupdated: YYYY-MM-DD\nsource: source-doc\ntags: [api, platform, n8n]\n---\n\n# Platform API name\n\n## Endpoint\n\n- Method:\n- URL:\n\n## Auth / Headers\n\n- ...\n\n## Params\n\n- Path:\n- Query:\n\n## Body\n\n```json\n{}\n```\n\n## n8n HTTP Request\n\n- Method:\n- URL expression:\n- Headers:\n- Body Content Type:\n- Body:\n\n## Read Response\n\n- ...\n\n## Permissions / Pitfalls\n\n- ...\n\n## Source\n\n- Local: `references/source/...`\n````\n\n## Concept Card\n\n```markdown\n---\ntitle: Concept\ntype: concept-card\nstatus: draft\nupdated: YYYY-MM-DD\nsource: official-doc\ntags: [n8n, concept]\n---\n\n# Concept\n\n## 何时读取\n\n...\n\n## 定义\n\n...\n\n## 决策规则\n\n- ...\n\n## 示例\n\n...\n\n## 常见坑\n\n- ...\n\n## 来源\n\n- Local: `references/source/...`\n```\n\n## Recipe\n\n````markdown\n---\ntitle: Recipe\ntype: recipe\nstatus: draft\nupdated: YYYY-MM-DD\nsource: compiled\ntags: [n8n, workflow]\n---\n\n# Recipe\n\n## 何时读取\n\n...\n\n## 节点链路\n\n```text\nTrigger -> ...\n```\n\n## 数据契约\n\n- Input:\n- Output:\n\n## 关键配置\n\n- ...\n\n## 错误处理\n\n- ...\n\n## 来源\n\n- Local: `references/wiki/...`\n- Local: `references/source/...`\n````"},{"path":"references/templates/code-node-output.md","content":"# Code Node Output\n\nUse this shape when producing n8n Code node JavaScript.\n\n````markdown\n## 输入假设\n\n- Mode:\n- Incoming items:\n- Required fields:\n\n## Code node JavaScript\n\n```javascript\nconst items = $input.all();\n\nreturn items.map((item) => ({\n  json: {\n    ...item.json,\n  },\n}));\n```\n\n## 输出结构\n\n```json\n[\n  {\n    \"json\": {}\n  }\n]\n```\n\n## 注意事项\n\n- Keep secrets in credentials or environment variables.\n- Return valid n8n items.\n- Preserve item pairing when downstream nodes rely on per-item mapping.\n````"},{"path":"references/templates/http-node-output.md","content":"# HTTP Request Node Output\n\nUse this shape when producing n8n HTTP Request node guidance.\n\n```markdown\n## HTTP Request 节点配置\n\n| 配置项 | 值 |\n|---|---|\n| Method |  |\n| URL |  |\n| Authentication |  |\n| Headers |  |\n| Query Params |  |\n| Body Content Type |  |\n| Body |  |\n| Response Options |  |\n\n## n8n 表达式\n\n```text\n{{ $json.example }}\n```\n\n## 返回值读取\n\n- `{{$json...}}`\n\n## 调试检查\n\n- 状态码：\n- 权限：\n- 字段类型：\n- 分页：\n- 幂等：\n\n## 来源\n\n- `references/...`\n```"},{"path":"references/templates/runbook-template.md","content":"# n8n Workflow Runbook Template\n\n## Purpose\n\n- What the workflow does and why it exists.\n\n## Triggers\n\n- Cron / Webhook / Manual\n- Schedule, timezone, and expected frequency.\n\n## Inputs\n\n- Source systems and credentials. Reference env vars or credential names only.\n\n## Outputs\n\n- Where results go, including naming and retention.\n\n## Idempotency\n\n- Dedup key:\n- Safe rerun behavior:\n\n## Error Handling\n\n- Retry policy:\n- Failure notifications:\n- Review queue link/location:\n\n## Logging And Audit\n\n- Run ID:\n- What is logged per run:\n- Where logs are stored:\n\n## Operational Checks\n\n- Expected counts/thresholds:\n- Stop-the-line conditions:"}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"Answers n8n questions and builds n8n workflows, node configurations, Code node JavaScript, HTTP Request setups, API integrations, toolbox-assisted API tests,... Skill: n8n Master Owner: billzhuang6569 Summary: Answers n8n questions and builds n8n workflows, node configurations, Code node JavaScript, HTTP Request setups, API integrations, toolbox-assisted API tests,... Tags: api:1.0.2, automation:1.0.2, feishu:1.0.2, lark:1.0.2, latest:1.0.2, n8n:1.0.2, workflow:1.0.2 Version history: v1.0.2 | 2026-05-17T09:58:36.901Z | user Wiki-only release: remove raw source corpora while","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":975,"uniquenessScore":55,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-09T08:19:06.895Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-09T08:19:06.895Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-10T08:06:01.417Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}