wikifier 0.3.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,130 @@
1
+ # Basis-v0.3 — Implementation Reference & Design Notes
2
+
3
+ This document captures the concrete design decisions and data formats for Wikifier v0.3. It is the "how" that supports the immutable "what" in `spec.md`.
4
+
5
+ ## 1. Health Matrix (`file_health.md`)
6
+
7
+ Format (Markdown table, append-only with latest state wins):
8
+
9
+ ```markdown
10
+ # Documentation Health Matrix
11
+
12
+ | File | Status | Last Updated | Reason / Intent |
13
+ |------|--------|--------------|-----------------|
14
+ | src/main.py | 🟢 Green | 2026-05-15 14:32 | Initial summary complete. No pending edits. |
15
+ | src/utils.py | 🟡 Yellow | 2026-05-15 14:28 | LLM added new helper. Pending summary update. |
16
+ | src/legacy/old.js | 🔴 Red | 2026-05-14 09:10 | File modified but wiki summary missing. |
17
+ ```
18
+
19
+ **Status Rules**:
20
+ - 🟢 Green: Summary in corresponding MD file is accurate and up-to-date.
21
+ - 🟡 Yellow: Change detected (mtime or `record-change`). Requires LLM review + `mark-green`.
22
+ - 🔴 Red: Critical gap — file exists in monitored tree but has no wiki entry at all.
23
+
24
+ `wikifier.sh` commands maintain this table automatically.
25
+
26
+ ## 2. Semantic Logging — `record-change` and `record-deletion`
27
+
28
+ These are the primary ways LLMs/agents communicate intent:
29
+
30
+ ```bash
31
+ wikifier record-change "src/feature.py" "Added retry decorator because external API is flaky under load. Removed synchronous fallback path."
32
+ wikifier record-deletion "src/dead_code.py" "Dead code after migration to async client. Safe to remove per audit in journal/2026/05/15.md"
33
+ ```
34
+
35
+ Effects:
36
+ - Appends a structured entry to `journal/YYYY/MM/DD.md`
37
+ - Appends a Yellow health row to `file_health.md`
38
+ - Adds item to `pending_updates.md`
39
+ - (Future) Can trigger `prepare-edit` diff capture
40
+
41
+ This gives the system rich self-review material later ("why did we do X?").
42
+
43
+ ## 3. Journal System
44
+
45
+ Location: `journal/<YYYY>/<MM>/<DD>.md`
46
+
47
+ Each day file is append-only. Example entry:
48
+
49
+ ```markdown
50
+ ## [2026-05-15 14:28:03 UTC] LLM record-change
51
+ **File:** src/utils.py
52
+ **Action:** modified
53
+ **Reason:** Added exponential backoff helper. Needed because the payment gateway returns 429s during sales events.
54
+ ```
55
+
56
+ Automated entries are also written by `check-changes` for mtime-detected modifications.
57
+
58
+ Optional Obsidian-friendly export: `wikifier journal --obsidian` produces a single `journal-obsidian.md` with proper `[[wikilinks]]`.
59
+
60
+ ## 4. Logged Issues Hierarchy
61
+
62
+ ```
63
+ Logged_issues/
64
+ ├── map.md # Overview + quick links
65
+ ├── simple/
66
+ │ ├── frontend/
67
+ │ ├── backend/
68
+ │ ├── security/
69
+ │ └── ...
70
+ ├── moderate/
71
+ ├── high/
72
+ └── critical/
73
+ ```
74
+
75
+ `map.md` contains a categorized index. LLMs are instructed to consult historical issues before debugging.
76
+
77
+ ## 5. Library & Import Map (`library.md`)
78
+
79
+ Contains:
80
+ - A generated Mermaid `graph TD` showing import/dependency relationships.
81
+ - A flat list of every monitored file with its direct imports/exports.
82
+ - Token-efficient: only filenames + arrows, no code.
83
+
84
+ Generated by `wikifier update-maps` which runs language-aware grep (Python `import`, JS `require`/`import`, Go `import`, etc.).
85
+
86
+ ## 6. Background Heartbeat (`monitor`)
87
+
88
+ ```bash
89
+ ./wikifier.sh monitor &
90
+ # or
91
+ nohup ./wikifier.sh monitor > .wikifier_staging/monitor.log 2>&1 &
92
+ ```
93
+
94
+ Runs `check-changes` every 30s (configurable via env `WIKIFIER_POLL_INTERVAL`).
95
+
96
+ On any Yellow/Red flip, it can optionally `touch .wikifier_staging/ALERT` so an external watcher (or the LLM when it wakes) knows work is waiting.
97
+
98
+ ## 7. Skills / MCP Interface (`skills/run.md`)
99
+
100
+ Every command in `wikifier.sh` is exposable as an MCP tool. The `run.md` file contains the exact prompt fragment agents must include at the start of every session.
101
+
102
+ ## 8. Zero-Dependency Philosophy
103
+
104
+ - No node, python packages, docker, or external binaries.
105
+ - `wikifier.bat` on Windows uses PowerShell + built-in `Get-ChildItem`, `Select-String`, etc.
106
+ - All state lives in plain `.md` files + a few dot-files for timestamps (`.wikifier_last_check`).
107
+
108
+ ## 9. Target Monitored Codebase
109
+
110
+ Wikifier is designed to document **any** other project. You point it at your real codebase by editing:
111
+
112
+ - `monitored_paths.txt` — one path per line (can be outside the wikifier tree)
113
+ - `exclude_patterns.txt` — globs to ignore
114
+
115
+ Example for documenting a sibling project:
116
+
117
+ ```
118
+ monitored_paths.txt
119
+ ../my-other-repo/src
120
+ ../my-other-repo/tests
121
+ ```
122
+
123
+ ## 10. Future v0.4 Ideas (not in current scope)
124
+
125
+ - Language-specific summary generators (tree-sitter or simple regex)
126
+ - Git hook integration for automatic record-change on commit
127
+ - Diff storage in `.wikifier_staging/diffs/`
128
+ - TUI dashboard (optional, still zero-dep via `dialog` or pure bash)
129
+
130
+ This Basis document + `spec.md` + the working `wikifier.sh` implementation form the complete contract for v0.3.
@@ -0,0 +1,85 @@
1
+ # Contributing to Wikifier
2
+
3
+ Thank you for your interest in Wikifier! This project is intentionally **agent-first** and ultra-light. We want contributions that keep it that way.
4
+
5
+ ## Our Philosophy
6
+
7
+ - **Zero external dependencies** is sacred. No new Python packages, Node modules, Docker images, or heavy CLIs.
8
+ - **Agent-first design** comes first. If something makes life harder for LLMs/Grok Build/Cline/etc., we probably shouldn't do it.
9
+ - **Semantic logging** (`record-change`) is the heart of the system. Changes without intent are less valuable.
10
+ - Keep it simple. This is a shell + Markdown tool, not a full framework.
11
+
12
+ ## How to Contribute
13
+
14
+ ### 1. Reporting Issues
15
+
16
+ Please use the appropriate GitHub issue template:
17
+
18
+ - **🐛 Bug Report** — Something is broken in the CLI, health matrix, journal, or dashboard.
19
+ - **✨ Feature Request** — New command, better behavior, or quality-of-life improvement.
20
+ - **📋 Documentation / Wiki Health Issue** — Problems with file summaries, missing coverage, or incorrect health status.
21
+ - **🤖 Agent / LLM Finding** — You (as an LLM) discovered something while using Wikifier on another project. This is highly encouraged.
22
+
23
+ ### 2. Making Changes
24
+
25
+ 1. **Fork** the repository and create a feature branch from `main`.
26
+ 2. **Follow the rules yourself**:
27
+ ```bash
28
+ ./wikifier.sh check-changes
29
+ # Read file_health.md and pending_updates.md
30
+ # Prioritise Red → Yellow
31
+ ```
32
+ 3. For **any** code or documentation change you make:
33
+ ```bash
34
+ ./wikifier.sh record-change "path/to/your/file" "I changed X because Y. This improves Z for agents."
35
+ ```
36
+ 4. After you update the corresponding wiki summary (if applicable):
37
+ ```bash
38
+ ./wikifier.sh mark-green "path/to/your/file"
39
+ ```
40
+ 5. Run `./wikifier.sh validate` and `./wikifier.sh update-maps` before opening a PR.
41
+
42
+ ### 3. Pull Request Guidelines
43
+
44
+ - Keep PRs focused. One logical change per PR.
45
+ - Update documentation (`README.md`, `Basis-v0.3.md`, `skills/run.md`) when behavior changes.
46
+ - If you add a new command, document it in `skills/run.md` and the help text in `wikifier.sh`.
47
+ - All shell changes must remain POSIX-compatible where possible (or clearly PowerShell-only).
48
+ - Add yourself to the journal if you want (`wikifier record-change` is the proper way).
49
+
50
+ ### 4. Code Style
51
+
52
+ - **Shell**: Keep it readable. Use functions. Prefer clarity over cleverness.
53
+ - **Markdown**: Short paragraphs. Use tables for commands. Use emojis sparingly and consistently.
54
+ - **No new dependencies**. If your idea requires one, it probably doesn't belong here.
55
+ - Test on at least one Unix-like system and (ideally) Windows.
56
+
57
+ ### 5. Documentation Contributions
58
+
59
+ Wikifier is self-documenting. The best documentation contributions usually come in the form of:
60
+
61
+ - Improving file summaries in the monitored codebase
62
+ - Better `record-change` reasons that future agents will find useful
63
+ - Improvements to `skills/run.md` (the agent contract)
64
+
65
+ ## Development Workflow (Meta)
66
+
67
+ When working on Wikifier itself, treat this repository as a Wikifier project:
68
+
69
+ ```bash
70
+ ./wikifier.sh check-changes
71
+ # Work
72
+ ./wikifier.sh record-change "wikifier.sh" "Added support for X because..."
73
+ ./wikifier.sh mark-green "wikifier.sh"
74
+ ./wikifier.sh update-maps
75
+ ```
76
+
77
+ ## Questions?
78
+
79
+ Open an issue with the **Agent / LLM Finding** template or just start a discussion.
80
+
81
+ We especially welcome contributions from other agents and LLM users who have used Wikifier in real projects.
82
+
83
+ ---
84
+
85
+ *Remember: every good `record-change` you write makes the system more valuable for the next agent that comes along.*
wikifier-0.3.0/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Aron Amos
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,16 @@
1
+ include wikifier/scripts/*
2
+ include README.md
3
+ include LICENSE
4
+ include CONTRIBUTING.md
5
+ include spec.md
6
+ include Basis-v0.3.md
7
+ include TRADEOFFS.md
8
+ include skills/run.md
9
+ include index.html
10
+ global-exclude *.pyc
11
+ global-exclude __pycache__
12
+ prune .github
13
+ prune journal
14
+ prune Logged_issues
15
+ prune .wikifier_staging
16
+ prune .chisel
@@ -0,0 +1,137 @@
1
+ Metadata-Version: 2.4
2
+ Name: wikifier
3
+ Version: 0.3.0
4
+ Summary: Agent-first, zero-dependency, self-maintaining codebase documentation & change tracking system
5
+ Author-email: Aron Amos <aron@example.com>
6
+ Maintainer: Aron Amos
7
+ License: MIT
8
+ Project-URL: Homepage, https://github.com/IronAdamant/wikifier
9
+ Project-URL: Repository, https://github.com/IronAdamant/wikifier
10
+ Project-URL: Documentation, https://github.com/IronAdamant/wikifier#readme
11
+ Project-URL: Bug Tracker, https://github.com/IronAdamant/wikifier/issues
12
+ Keywords: wiki,documentation,llm,agent,mcp,codebase,health-matrix,zero-dependency,shell
13
+ Classifier: Development Status :: 4 - Beta
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: License :: OSI Approved :: MIT License
16
+ Classifier: Programming Language :: Python :: 3
17
+ Classifier: Programming Language :: Python :: 3.8
18
+ Classifier: Programming Language :: Python :: 3.9
19
+ Classifier: Programming Language :: Python :: 3.10
20
+ Classifier: Programming Language :: Python :: 3.11
21
+ Classifier: Programming Language :: Python :: 3.12
22
+ Classifier: Operating System :: OS Independent
23
+ Classifier: Topic :: Software Development :: Documentation
24
+ Classifier: Topic :: Software Development :: Version Control
25
+ Classifier: Topic :: Text Processing :: Markup :: Markdown
26
+ Requires-Python: >=3.8
27
+ Description-Content-Type: text/markdown
28
+ License-File: LICENSE
29
+ Dynamic: license-file
30
+
31
+ # Wikifier v0.3
32
+
33
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
34
+ [![GitHub Stars](https://img.shields.io/github/stars/IronAdamant/wikifier?style=social)](https://github.com/IronAdamant/wikifier/stargazers)
35
+
36
+ **Agent-first • Zero-dependency • LLM-operated codebase wiki**
37
+
38
+ Wikifier turns any codebase (tiny scripts → large monorepos) into a living, token-efficient map that LLMs/agents operate autonomously.
39
+
40
+ > **GitHub**: https://github.com/IronAdamant/wikifier
41
+ > **PyPI**: `pip install wikifier` (coming very soon)
42
+
43
+ ---
44
+
45
+ ## 🚀 Get Started in 30 Seconds
46
+
47
+ ### Option 1: Via pip (Recommended)
48
+
49
+ ```bash
50
+ pip install wikifier
51
+
52
+ # Then run
53
+ wikifier init
54
+ wikifier check-changes
55
+ ```
56
+
57
+ ### Option 2: From source
58
+
59
+ ```bash
60
+ git clone https://github.com/IronAdamant/wikifier.git
61
+ cd wikifier
62
+ chmod +x wikifier.sh
63
+
64
+ # Point it at your codebase
65
+ nano monitored_paths.txt
66
+
67
+ ./wikifier.sh init
68
+ ./wikifier.sh check-changes
69
+ ```
70
+
71
+ Then open `index.html` in your browser for the live dashboard.
72
+
73
+ ### Mandatory Rule for Every LLM / Grok Build Session
74
+
75
+ Copy this into the **start of every new prompt** when working in a Wikifier-managed project:
76
+
77
+ ```text
78
+ You are operating inside a Wikifier v0.3 project.
79
+
80
+ MANDATORY FIRST STEPS:
81
+ 1. Run: wikifier check-changes
82
+ 2. Read file_health.md + pending_updates.md
83
+ 3. Prioritise 🔴 Red → 🟡 Yellow items
84
+ 4. For every code edit: wikifier record-change "path/to/file" "I did X because Y"
85
+ 5. After updating the wiki summary: wikifier mark-green "path/to/file"
86
+ 6. Re-validate before finishing
87
+ ```
88
+
89
+ ---
90
+
91
+ ## What Wikifier Gives You
92
+
93
+ - **Per-file Documentation Health Matrix** — 🟢 Green / 🟡 Yellow / 🔴 Red status with reasons
94
+ - **Semantic Change Logging** — `record-change "file" "I did X because Y"` (the "why", not just the "what")
95
+ - **Background Heartbeat Monitor** — Passive `monitor &` loop keeps everything fresh while you sleep
96
+ - **Automated Journal + Categorized Issues** — Dated entries + `Logged_issues/{simple,moderate,high,critical}/...`
97
+ - **Beautiful Static Dashboard** — `index.html` with live health lights, Mermaid graphs, and one-click command reference
98
+ - **MCP / Agent Ready** — Full `skills/run.md` contract so Grok, Claude, Cline, etc. can drive it natively
99
+ - **True Zero Dependencies** — Pure Bash + PowerShell. Works on any machine, no Docker, no Node, no Python packages.
100
+
101
+ **This is agent-first.** LLMs operate the system via shell commands. Humans just watch the dashboard.
102
+
103
+ ## Core Commands
104
+
105
+ | Command | Purpose |
106
+ |---------------------------|----------------------------------------------|
107
+ | `wikifier check-changes` | Incremental mtime scan + health update |
108
+ | `wikifier record-change <file> "reason"` | Log *why* you made an edit (required) |
109
+ | `wikifier mark-green <file>` | Mark wiki summary as accurate after editing |
110
+ | `wikifier monitor &` | Background heartbeat (30s polling) |
111
+ | `wikifier update-maps` | Rebuild `library.md` + Mermaid dependency graph |
112
+ | `wikifier health` | Show current Documentation Health Matrix |
113
+
114
+ Full reference → [`skills/run.md`](skills/run.md)
115
+
116
+ ## Quick Links
117
+
118
+ - [spec.md](spec.md) — Immutable user requirements
119
+ - [Basis-v0.3.md](Basis-v0.3.md) — Implementation reference & data formats
120
+ - [TRADEOFFS.md](TRADEOFFS.md) — Why we made the design choices we did
121
+ - [index.html](index.html) — Open this in a browser for the live dashboard
122
+
123
+ ## Differentiation
124
+
125
+ Unlike heavy "LLM Wiki" approaches (e.g. Karpathy-style personal knowledge bases), Wikifier is the **ultra-light, shell-native** implementation:
126
+
127
+ - Per-file health matrix with clear Red/Yellow/Green workflow
128
+ - Semantic `record-change` intent logging for future self-review
129
+ - True background monitor + zero external dependencies
130
+ - Native cross-platform (Linux/macOS/Windows via PowerShell)
131
+ - Designed from day one to be driven by LLMs via MCP/tools
132
+
133
+ **License**: MIT — fork freely and use in any project.
134
+
135
+ ---
136
+
137
+ *Built for agents, by agents, with just `bash` and stubbornness.*
@@ -0,0 +1,107 @@
1
+ # Wikifier v0.3
2
+
3
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
4
+ [![GitHub Stars](https://img.shields.io/github/stars/IronAdamant/wikifier?style=social)](https://github.com/IronAdamant/wikifier/stargazers)
5
+
6
+ **Agent-first • Zero-dependency • LLM-operated codebase wiki**
7
+
8
+ Wikifier turns any codebase (tiny scripts → large monorepos) into a living, token-efficient map that LLMs/agents operate autonomously.
9
+
10
+ > **GitHub**: https://github.com/IronAdamant/wikifier
11
+ > **PyPI**: `pip install wikifier` (coming very soon)
12
+
13
+ ---
14
+
15
+ ## 🚀 Get Started in 30 Seconds
16
+
17
+ ### Option 1: Via pip (Recommended)
18
+
19
+ ```bash
20
+ pip install wikifier
21
+
22
+ # Then run
23
+ wikifier init
24
+ wikifier check-changes
25
+ ```
26
+
27
+ ### Option 2: From source
28
+
29
+ ```bash
30
+ git clone https://github.com/IronAdamant/wikifier.git
31
+ cd wikifier
32
+ chmod +x wikifier.sh
33
+
34
+ # Point it at your codebase
35
+ nano monitored_paths.txt
36
+
37
+ ./wikifier.sh init
38
+ ./wikifier.sh check-changes
39
+ ```
40
+
41
+ Then open `index.html` in your browser for the live dashboard.
42
+
43
+ ### Mandatory Rule for Every LLM / Grok Build Session
44
+
45
+ Copy this into the **start of every new prompt** when working in a Wikifier-managed project:
46
+
47
+ ```text
48
+ You are operating inside a Wikifier v0.3 project.
49
+
50
+ MANDATORY FIRST STEPS:
51
+ 1. Run: wikifier check-changes
52
+ 2. Read file_health.md + pending_updates.md
53
+ 3. Prioritise 🔴 Red → 🟡 Yellow items
54
+ 4. For every code edit: wikifier record-change "path/to/file" "I did X because Y"
55
+ 5. After updating the wiki summary: wikifier mark-green "path/to/file"
56
+ 6. Re-validate before finishing
57
+ ```
58
+
59
+ ---
60
+
61
+ ## What Wikifier Gives You
62
+
63
+ - **Per-file Documentation Health Matrix** — 🟢 Green / 🟡 Yellow / 🔴 Red status with reasons
64
+ - **Semantic Change Logging** — `record-change "file" "I did X because Y"` (the "why", not just the "what")
65
+ - **Background Heartbeat Monitor** — Passive `monitor &` loop keeps everything fresh while you sleep
66
+ - **Automated Journal + Categorized Issues** — Dated entries + `Logged_issues/{simple,moderate,high,critical}/...`
67
+ - **Beautiful Static Dashboard** — `index.html` with live health lights, Mermaid graphs, and one-click command reference
68
+ - **MCP / Agent Ready** — Full `skills/run.md` contract so Grok, Claude, Cline, etc. can drive it natively
69
+ - **True Zero Dependencies** — Pure Bash + PowerShell. Works on any machine, no Docker, no Node, no Python packages.
70
+
71
+ **This is agent-first.** LLMs operate the system via shell commands. Humans just watch the dashboard.
72
+
73
+ ## Core Commands
74
+
75
+ | Command | Purpose |
76
+ |---------------------------|----------------------------------------------|
77
+ | `wikifier check-changes` | Incremental mtime scan + health update |
78
+ | `wikifier record-change <file> "reason"` | Log *why* you made an edit (required) |
79
+ | `wikifier mark-green <file>` | Mark wiki summary as accurate after editing |
80
+ | `wikifier monitor &` | Background heartbeat (30s polling) |
81
+ | `wikifier update-maps` | Rebuild `library.md` + Mermaid dependency graph |
82
+ | `wikifier health` | Show current Documentation Health Matrix |
83
+
84
+ Full reference → [`skills/run.md`](skills/run.md)
85
+
86
+ ## Quick Links
87
+
88
+ - [spec.md](spec.md) — Immutable user requirements
89
+ - [Basis-v0.3.md](Basis-v0.3.md) — Implementation reference & data formats
90
+ - [TRADEOFFS.md](TRADEOFFS.md) — Why we made the design choices we did
91
+ - [index.html](index.html) — Open this in a browser for the live dashboard
92
+
93
+ ## Differentiation
94
+
95
+ Unlike heavy "LLM Wiki" approaches (e.g. Karpathy-style personal knowledge bases), Wikifier is the **ultra-light, shell-native** implementation:
96
+
97
+ - Per-file health matrix with clear Red/Yellow/Green workflow
98
+ - Semantic `record-change` intent logging for future self-review
99
+ - True background monitor + zero external dependencies
100
+ - Native cross-platform (Linux/macOS/Windows via PowerShell)
101
+ - Designed from day one to be driven by LLMs via MCP/tools
102
+
103
+ **License**: MIT — fork freely and use in any project.
104
+
105
+ ---
106
+
107
+ *Built for agents, by agents, with just `bash` and stubbornness.*
@@ -0,0 +1,68 @@
1
+ # TRADEOFFS.md — Design Decisions in Wikifier v0.3
2
+
3
+ ## Passive Polling vs Filesystem Events
4
+
5
+ **Choice**: Simple mtime polling via `find -newermt` + timestamp file (`.wikifier_last_check`).
6
+
7
+ **Why**:
8
+ - Zero dependencies and works identically on Linux, macOS, Windows (via WSL or PowerShell equivalent).
9
+ - No `inotifywait`, `fswatch`, or `watchdog` required.
10
+ - LLMs can sleep; the monitor loop just keeps the health matrix fresh.
11
+
12
+ **Downside**: 30s latency on average. Acceptable for documentation/wiki use case.
13
+
14
+ ## Static HTML Dashboard vs Dynamic SPA
15
+
16
+ **Choice**: Single self-contained `index.html` with embedded JS that fetches/parses local `.md` files (via `fetch` + marked.js or simple regex, or pre-generated JSON).
17
+
18
+ **Why**:
19
+ - No build step, no server, no npm.
20
+ - Can be opened directly from disk (`file://`).
21
+ - Extremely fast to render even for thousands of files.
22
+
23
+ **Future option**: A small Node script can be added later to pre-render the dashboard into a richer `dist/index.html` without changing the core zero-dep contract.
24
+
25
+ ## Semantic `record-change` vs Pure Git History
26
+
27
+ **Choice**: We still encourage `record-change` even when the user is also using git.
28
+
29
+ **Why**:
30
+ - Git tells you *what* changed.
31
+ - `record-change` tells the LLM *why* the change was made and the reasoning at decision time.
32
+ - This "intent log" is gold for future agents doing archaeology or refactoring.
33
+
34
+ ## Health Matrix as Single Markdown Table
35
+
36
+ **Choice**: One `file_health.md` with a Markdown table rather than per-file frontmatter or a JSON blob.
37
+
38
+ **Why**:
39
+ - LLMs read Markdown natively with perfect fidelity.
40
+ - Humans can read it directly in any editor.
41
+ - Easy to append with `>>` in shell.
42
+ - Git diffs are human-readable.
43
+
44
+ ## Directory-Based Logged Issues
45
+
46
+ **Choice**: Nested folders `Logged_issues/{severity}/{category}/` instead of tags or a single SQLite DB.
47
+
48
+ **Why**:
49
+ - Pure filesystem navigation — works in every tool.
50
+ - LLMs can `ls` or `find` to discover issues quickly.
51
+ - Easy to split large files when a category grows.
52
+
53
+ ## No Code in Wiki MD Files
54
+
55
+ **Choice**: Wiki summary files contain only filename + imports + prose purpose. Zero source code.
56
+
57
+ **Why**:
58
+ - Massive token savings.
59
+ - Prevents the LLM from being distracted by implementation details when it only needs architecture.
60
+ - The real source of truth remains the original files.
61
+
62
+ ## Heartbeat Wakes the LLM (Conceptual)
63
+
64
+ The monitor loop can create a sentinel file `.wikifier_staging/work_ready`. When an LLM starts a new session it sees this and knows to run `check-changes` + triage Yellow/Red items immediately. This is the "LLM can sleep" pattern requested in the spec.
65
+
66
+ ---
67
+
68
+ These tradeoffs keep Wikifier true to its core promise: **maximum compatibility + agent autonomy + zero external dependencies**.