fix: align log inventory and examples

This commit is contained in:
Yuhan Lei
2026-07-24 00:57:31 +08:00
parent 36b1eb7ee0
commit eafcc77001
5 changed files with 24 additions and 7 deletions
+5 -3
View File
@@ -110,13 +110,15 @@ Append to `wiki/log.md`:
- Updated: <cascade-updated article title>
```
Omit `- Updated:` lines when no cascade updates occur. For No material, log and stop:
Omit `- Updated:` lines when no cascade updates occur. For No material, log and stop. Use a project-root-relative raw path (for example, `raw/topic/file.md`):
```
## [YYYY-MM-DD] ingest | no material: <raw file path>
## [YYYY-MM-DD] ingest | no material: <project-root-relative raw file path>
- Disposition: No material
```
The exact no-material heading is the machine-readable inventory key; the Disposition line remains required for a complete human-readable log entry.
### Research (multi-source ingest)
Use only when the user explicitly asks to research a topic or gather sources into the wiki. Ordinary knowledge questions go to Query, which never writes files.
@@ -194,7 +196,7 @@ Run these mechanically with `python3 <skill-dir>/scripts/check_evidence.py <proj
**Source fidelity** — reported suspects are candidates, not verdicts: derived values and product names may appear. Judge each against the raw context and report only real mismatches.
**Evidence errors** — articles the script cannot verify (missing Raw field, unresolvable Raw links). These always need a decision, not a fix from the script.
**Evidence errors** — articles the script cannot verify (missing Raw field, unresolvable Raw links, or Raw links escaping `raw/`). These always need a decision, not a fix from the script.
**Unreferenced raw files** — files logged with a No material disposition are excluded; everything else is a genuine backlog reminder.
+1
View File
@@ -10,3 +10,4 @@ Usage strategies, context management, multi-agent orchestration, and human-AI in
| [AI as GitHub Co-author Status](ai-coding-tools/ai-coauthor-github.md) | Co-authored-by community controversy, legal implications, and tiered strategy recommendations | 2026-03-28 |
| [Skill Language Choice and Distribution](ai-coding-tools/skill-language-distribution.md) | Why SKILL.md must be English for skill distribution - ecosystem and technical reasons | 2026-04-05 |
| [LLM Working Language Strategy](ai-coding-tools/llm-working-language-strategy.md) | Bilingual developer's language choice: English for system content, Chinese for conversation - practical bilingual strategy, token savings overstated, agentic stability is the real reason | 2026-03-30 |
| [Claude Code Statusline Tool Ecosystem](ai-coding-tools/claude-code-statusline-landscape.md) | Competitive landscape, user pain points, and reliability trade-offs across statusline tools | 2026-03-24 |
+3 -3
View File
@@ -7,10 +7,10 @@
- Raw: raw/content-strategy/2026-04-12-x-buildinpublic-thread.md
- Core finding: altruistic content earns distribution, self-narrative does not
## [2026-04-15] ingest | AI coding tools landscape 2026 Q1
- Disposition: Update; Disputed
## [2026-04-15] ingest | AI coding benchmark methodology
- Disposition: Disputed
- Raw: raw/ai-coding-tools/2026-04-15-vendor-benchmark-post.md
- Updated: Claude Code statusline landscape (vendor's throughput claim contradicted the earlier community measurement; marked Status: Disputed)
- Updated: Vendor benchmark reliability (vendor's throughput claim contradicted the earlier community measurement; marked Status: Disputed)
## [2026-04-18] ingest | no material: raw/ai-coding-tools/2026-04-18-weekly-trending-recap.md
- Disposition: No material
+2 -1
View File
@@ -325,7 +325,8 @@ def no_material_paths(log_file: Path) -> set[str]:
if not log_file.is_file():
return set()
paths = set()
for line in log_file.read_text(encoding="utf-8").splitlines():
text = strip_fences(log_file.read_text(encoding="utf-8"))
for line in text.splitlines():
m = NO_MATERIAL_HEADING_RE.match(line)
if m:
paths.add(m.group(1).strip("`,;."))
+13
View File
@@ -417,6 +417,19 @@ class RawEscapeTest(WikiTestCase):
class NoMaterialParsingTest(WikiTestCase):
def test_heading_inside_fence_does_not_suppress(self):
(self.root / "raw" / "t").mkdir(parents=True)
(self.root / "raw" / "t" / "orphan.md").write_text("# Orphan\n")
(self.root / "wiki").mkdir()
(self.root / "wiki" / "index.md").write_text("# Knowledge Base Index\n")
(self.root / "wiki" / "log.md").write_text(
"# Wiki Log\n\n```markdown\n"
"## [2026-01-01] ingest | no material: raw/t/orphan.md\n"
"- Disposition: No material\n```\n"
)
result = run_checker(self.root)
self.assertIn("raw/t/orphan.md", result.stdout)
def test_prose_mention_in_lint_entry_does_not_suppress(self):
(self.root / "raw" / "t").mkdir(parents=True)
(self.root / "raw" / "t" / "orphan.md").write_text("# Orphan\n")