一键导入
second-brain-lint
Scan wiki/ for quality issues — contradictions, unsupported claims, and content gaps — and save a structured report to outputs/.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Scan wiki/ for quality issues — contradictions, unsupported claims, and content gaps — and save a structured report to outputs/.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Read new or changed files in raw/, synthesise content into wiki/ topic articles, rebuild INDEX.md, and update the ingest manifest.
Extract text from a PDF, convert it to markdown, and write the result into raw/pdf/, ready for ingestion.
Initialize or update the Second Brain vault — creates folder structure, declares interests, configures Craft import scope, and generates CLAUDE.md.
Continue an existing conversation thread by re-reading the wiki and appending a follow-up answer to the thread file.
Answer a natural-language question by synthesising content from wiki/, and save the response to outputs/.
Work through open findings in the latest lint report one at a time — propose a fix, apply on approval, skip on rejection.
| name | second-brain-lint |
| description | Scan wiki/ for quality issues — contradictions, unsupported claims, and content gaps — and save a structured report to outputs/. |
| argument-hint | |
| user-invocable | true |
Scan wiki/ for quality issues — contradictions, unsupported claims, and content gaps — and save a structured report to outputs/.
Contract: specs/001-personal-knowledge-base/contracts/second-brain-lint.md
/second-brain-lint
No arguments. Takes no input — operates on the current state of wiki/ and raw/.
Check that wiki/INDEX.md exists. If it does not:
Knowledge base is empty — wiki/INDEX.md does not exist.
Run /second-brain-ingest first to populate the wiki.
Stop. Write nothing.
Read wiki/INDEX.md to get the full list of articles.
Read the full content of every wiki article listed (all wiki/<topic>.md files except INDEX.md). For each article, extract:
*Sources: ...*) — the list of raw files credited as contributing to this article[[wikilinks]] to other articles (cross-references)Compare claims across articles. Look for cases where:
For each contradiction found, record:
If no contradictions are found, record: No contradictions detected.
For each article, check whether key claims are traceable to the sources listed in the article's Sources: footer:
Flag claims that appear to be specific assertions (statistics, named decisions, quoted figures) where the sources footer is empty or suspiciously thin.
Do NOT flag general synthesis or summary sentences — only flag specific factual assertions that require a source.
If no unsupported claims are found, record: No unsupported claims detected.
Scan raw/ for content that has not yet generated a wiki article:
raw/ (all subdirectories). File-listing tools truncate
— Claude Code's Glob caps at ~100 results per call (with a "Showing N of M"
notice), and shell output under other engines can truncate too — so list each
subdirectory separately, split any truncated chunk further by filename prefix
(e.g. raw/2026-07*) until no listing reports truncation, and confirm you
hold as many paths as the tool says matched. If you have shell access (e.g.
under Codex), cross-check with find raw -type f | wc -l. Never run the gap
analysis on an unverified listing.CLAUDE.mdFor each gap identified, suggest a topic name and rationale.
If no gaps are found, record: No content gaps detected.
Output path: outputs/YYYY-MM-DD_lint.md
Where YYYY-MM-DD is today's date.
If a lint report already exists for today (same filename), append a counter: outputs/YYYY-MM-DD_lint-2.md, etc.
Check that outputs/ directory exists. If not, create it.
Write the report with this exact format:
# Lint Report
<!-- sb:delint total="T" open="T" applied="0" skipped="0" -->
*Date: YYYY-MM-DD | Articles scanned: N | Raw sources: M*
## Contradictions
- [[article-a]] and [[article-b]]: [description of conflict]
<!-- sb:finding id="f1" type="edit-wiki" articles="article-a,article-b" status="open" -->
<!-- sb:proposal id="f1" confidence="high"
instruction="[Exact natural-language instruction to pass to /second-brain-edit-wiki to resolve this contradiction — e.g. 'Date-stamp the 26% figure in skyscanner-company as internal/undated and the 23% figure in ai-storytelling as Apple Barbican fireside Jun 2026']"
-->
*or: No contradictions detected.*
## Unsupported Claims
- [[article-name]]: "[quoted claim]" — no raw source found
<!-- sb:finding id="f2" type="edit-wiki" articles="article-name" status="open" -->
<!-- sb:proposal id="f2" confidence="high"
instruction="[Exact instruction to fix the sourcing issue — e.g. 'Add raw/images/2026-06-19_software-pulse-delivery-steering.md to the Sources footer of ai-caio-decisions']"
-->
*or: No unsupported claims detected.*
## Suggested Content Gaps
- **[Topic name]**: [rationale — what raw content exists and why a wiki article would be valuable]
<!-- sb:finding id="f3" type="run-ingest" articles="" status="open" -->
<!-- sb:proposal id="f3" confidence="high"
instruction="[The raw file path(s) to ingest — e.g. 'raw/web/2026-07-02_thin-layer-op-model.md']"
-->
*or: No content gaps detected.*
## Summary
N contradictions, M unsupported claims, P suggested gaps.
[One sentence overall assessment — e.g. "Knowledge base is in good shape." or "Several gaps worth addressing."]
Tag generation rules:
f1, f2, … across all findings in document ordertype values:
edit-wiki — any finding that requires changing wiki article text (contradictions, unsupported claims, labelling fixes)run-ingest — a raw file exists but is not yet in the wiki (content gaps where a raw file can be cited)acknowledge — housekeeping notes with no required action (duplicate files, already-reconciled items)confidence values:
high — the fix is unambiguous and the LLM is confident (e.g. add a missing source footer entry, label a figure with its source)low — the fix requires human judgement or knowledge the LLM cannot verify (e.g. reconciling two figures that may reflect genuinely different data)instruction field must be a single line of plain text (no newlines inside the value) that can be passed verbatim to /second-brain-edit-wiki or used to identify which file to ingestacknowledge findings, omit the sb:proposal block entirely — they auto-resolvesb:delint summary comment at the top: total = total findings count, open = same count at write time, applied = 0, skipped = 0Display the full report to the user in the conversation.
Then report:
Lint report saved to: outputs/YYYY-MM-DD_lint.md
Articles scanned: N | Raw sources checked: M
Findings: X contradictions, Y unsupported claims, Z gaps
raw/ or wiki/| Condition | Behaviour |
|---|---|
wiki/INDEX.md missing | Report "knowledge base is empty — run ingest first"; stop |
| Only one article in wiki | Run lint on it; note that contradiction detection requires at least two articles |
raw/ directory missing or empty | Skip gap analysis; note in report |
outputs/ directory missing | Create it, then write the report |
| Wiki article listed in INDEX but file missing | Note the missing file in the report under Unsupported Claims; continue |